簡體   English   中英

如何在Laravel 5.4中使用cookie來存儲數據

[英]how to use cookie in laravel 5.4 to store data

我正在創建一個網站,該網站需要存儲用戶信息並保存到Cookie。 這是我的cookie控制器

public function index($id, Request $request)
{    
    $petitions = Petitions::where('id',$id)->first();
    $sign->name  = $request->cookie('name'); 
    $sign->email = $request->cookie('email');

    return view('petitions.index', compact('petitions'))->with(['name'=>$sign->name,'email'=>$sign->email]);
}

這是設置cookie控制器

public function store(Request $request)
{
    $sign = new ActionUsers();

    $sign->name = $request->get('name');
    $sign->email = $request->get('email');
    $sign->job = $request->get('job');
    $sign->reason = $request->get('reason');
    $sign->ip_address = $request->get('ip_address');
    $sign->petition_id = $request->get('petition_id');
    $sign->is_anonymous = $request->get('is_anonymous');

    $sign->save(); 

    $name_cookie = cookie('name', $sign->name, 30);
    $email_cookie = cookie('email', $sign->email, 30);

    return back()->withCookie($name_cookie,$email_cookie);
}

我查看Cookie的視圖已存在

@if( isset($sign->name)  &&  isset($sign->email) )
    done!
@else Oops! Error

並返回錯誤,從$ sign-> name = $ request-> cookie('name');中的空值創建默認對象; $ sign-> email = $ request-> cookie('email');

有人幫我解決這個問題! 謝謝

嘗試將store函數返回為:

return back()->withCookie($name_cookie)->withCookie($email_cookie);

做這件事有很多種方法:

$response = new \Illuminate\Http\Response(view('your_view'));
$response->withCookie(cookie('cookieName' , 'cookieValue' , expires_in_minutes));
return $response;

要么

\Cookie::queue('cookieName', 'cookieValue', expires_in_minutes);
return view('your_view');

您還可以使用以下代碼獲取Cookie:

$request->cookie('coockieName');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM