【注意】最后更新于 November 27, 2019,文中内容可能已过时,请谨慎使用。
Laravel Middleware 里 Cookie 设置不成功问题
我在laravel中间件里写了下面一行代码:
1
2
3
4
5
6
| $response = $next($request)->cookie($clientKey, $client->id, 100 * 60 * 24 * 365);
#或者
\Cookie::queue($clientKey, $client->id, $ttl);
dump($client->id);
|
然后再中间件里,dump 一个变量,导致cookie
不能设置上去,事后发现中间件里不能有任何输出,比如:echo
,dump
,var_dump
,print_r
否则都会导致不成功
Laravel Jobs 不消费和消费失败问题(DB 是 mongodb)
创建了一个AccessLogJob
死活不会执行,终端也不抛异常,经过排查最终发现是,在DB
为mongodb
库的情况下 SerializesModels
压根不会触发,也就是会导致model
实例不会被序列化,临时解决方案注入时手动序列化serialize
,使用时反序列化unserialize
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| class AccessLogJob implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
/**
* @var AccessLog
*/
protected $accessLog;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(AccessLog $log)
{
$this->accessLog = serialize($log);
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
(unserialize($this->accessLog))->save();
}
}
|