是否可以在路由文件中设置Laravel 5.1中的cookie?

时间:2015-12-16 19:12:03

标签: laravel-5.1

我的路线文件中定义了一条路线

Route::get('/deals-coupons/{merchant_url_text}', function($merchant_url_text) {
return view('mlpdeals', ['merchant_url_text' => $merchant_url_text]);
});

我想在用户在Laravel 5.1中使用此路由时设置cookie值。我尝试了下面的路线,但它不起作用。

Route::get('/deals-coupons/{merchant_url_text}', function($merchant_url_text) {
return view('mlpdeals', ['merchant_url_text' => $merchant_url_text])->withCookie('testcookie', 'abcdef');
});

我检查了文档,但它显示了从Controller设置cookie的示例。是否可以通过路由设置这样的cookie?

1 个答案:

答案 0 :(得分:0)

是的。

无论如何它都是相同的功能。

/**
 * Add a cookie to the response.
 *
 * @param  \Symfony\Component\HttpFoundation\Cookie|mixed  $cookie
 * @return $this
 */
public function withCookie($cookie)
{
    if (is_string($cookie) && function_exists('cookie')) {
        $cookie = call_user_func_array('cookie', func_get_args());
    }

    $this->headers->setCookie($cookie);

    return $this;
}

withCookie方法只需调用setCookie类上的Symfony\Component\HttpFoundation\ResponseHeaderBag方法。