Monday, August 8, 2016

How to set cookie in controller with Laravel 5

It's not easy to do. I've tried to find on Google, and saw many people had the same question with me.

And here is a good information for you:


use Cookie;
use Illuminate\Http\Request;

class DefaultController extends \App\Http\Controllers\Controller
{
  /**
   * Home page 
   * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
   */
  public function home(Request $request)
  {
    $test = Cookie::make('test_cookie1', 'cookie1 value', 60);

    $response = new \Illuminate\Http\Response(view('frontend.default.home', ['test' => 'send to template']));
    // Set 2 cookie
    $response->withCookie(cookie('test_cookie2', $request->referrer, 45000))
      ->withCookie($test);
    return $response;
  }
}

Test:
set cookie in controller with Laravel 5