在cookie中存储细节

时间:2016-11-13 12:14:26

标签: php laravel cookies

如何将用户信息存储在cookie中。我有这样的表格:

<form action="{{url('/Profile/details')}}"  method="POST">
{!!csrf_field()!!}  
<input type="text" name="name" class="form-control"><br>
<select name="rate" class="form-control">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type="submit" class="form-control" value="Vote"> 
</form>

我真的不想将这些信息存储在数据库中,而是希望存储在Cookie中,以便我以后可以检索这些值。即namerate。我试图使用以下方式进行审讯:

$value = Request::cookie('name');
echo $value;

但显示:

  

非静态方法Illuminate \ Http \ Request :: cookie()不应该是   静态呼叫

2 个答案:

答案 0 :(得分:2)

您可以将这些信息存储在session()cookie()中,如下所示:

class HomeController extends Controller
{
    // Store using sessions like this:
    public function index()
    {
        $inputs = request()->all();

        // Store it in session with key-pair values retrieved from the form
        session($inputs);

        // Retrieve session values by name (key - value pairs)
        session()->pull('key', 'default_value');
    }

    // Or by using cookies like this:
    public function index()
    {
        $inputs = request()->all();

        // Creates cookie instance
        $minutes = 60;
        $cookie = cookie('name', $inputs['value'], $minutes);
        return response('Hello World')->cookie($cookie);
    }
}
  

如果你想生成一个   可以给予的Symfony\Component\HttpFoundation\Cookie实例   稍后的响应实例,您可以使用全局cookie   帮手。除非是cookie,否则不会将此cookie发送回客户端   附加到响应实例

希望这有帮助!

答案 1 :(得分:1)

你可以使用这2个功能:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LoginController extends Controller
{
    public function showCookie(Request $request) {
        return $request->cookie('name');
    }

    public function cekLogin() {
        return response('Cookie set!')->withCookie(cookie('name', 'my value', 60));
    }
}

然后将它们称为:

post('ceklogin','LoginController@cekLogin');
get('showcookies','LoginController@showCookie');