Laravel 采坑记录
发布时间 2019年11月27日 • 1 分钟 读完 • 86 字Laravel 采坑记录
我在laravel中间件里写了下面一行代码:
$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 否则都会导致不成功
创建了一个AccessLogJob死活不会执行,终端也不抛异常,经过排查最终发现是,在DB为mongodb库的情况下 SerializesModels 压根不会触发,也就是会导致model实例不会被序列化,临时解决方案注入时手动序列化serialize,使用时反序列化unserialize
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();
}
}