我在自定义中间件中有以下代码:
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.请任何人都可以帮忙.另外上面这个可以作为一个单独运行,所以它在应用程序启动时执行一次?
谢谢
在这里,我提到设置并在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.
如果您在本地环境中,请确保'secure' => env('SESSION_SECURE_COOKIE', false),在config/session.php文件中围绕第 165-170 行进行设置。
在非 SSL 域(如http://localhost/)上,此指令必须是false. 否则将不会在浏览器中设置 cookie。
| 归档时间: |
|
| 查看次数: |
2395 次 |
| 最近记录: |