Laravel设置cookie不起作用

Ric*_*tha 0 cookies laravel

我在自定义中间件中有以下代码:

public function handle($request, Closure $next)
{
    if($request->hasCookie('uuid')) {
        return $next($request);    
    }

    $uuid = 99;
    $response = $next($request);
    return $response->withCookie(cookie()->forever('uuid', $uuid));

}
Run Code Online (Sandbox Code Playgroud)

我已在app.php文件中注册了中间件,但仍未编写cookie.请任何人都可以帮忙.另外上面这个可以作为一个单独运行,所以它在应用程序启动时执行一次?

谢谢

May*_*hal 5

在这里,我提到设置并在laravel简单示例中获取cookie.

首先创建一个控制器.

1. php artisan make:controller CookieController

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class CookieController extends Controller {

  **/* below code a set a cookie in browser */**
   public function setCookie(Request $request){
      $response = new Response('Hello World');
      $response->withCookie(cookie('name', 'Anything else'));
      return $response;
   }
  **/* below code a get a cookie in browser */**
   public function getCookie(Request $request){
      $value = $request->cookie('name');
      echo $value;
   }
}
Run Code Online (Sandbox Code Playgroud)

在routes/web.php文件中添加以下行代码(Laravel 5.4)

Route::get('/cookie/set','CookieController@setCookie');   
Route::get('/cookie/get','CookieController@getCookie');
Run Code Online (Sandbox Code Playgroud)

并且所有文件加载项目都比运行程序轻松设置并获取cookie.


Moh*_*aji 5

如果您在本地环境中,请确保'secure' => env('SESSION_SECURE_COOKIE', false),config/session.php文件中围绕第 165-170 行进行设置。

在非 SSL 域(如http://localhost/)上,此指令必须是false. 否则将不会在浏览器中设置 cookie。