Php 试图获取Job Laravel中非对象的属性
我正在尝试创建一个注册用户的作业,并尝试跟踪Jeffrey的视频,但由于某种原因,dispatchfrom似乎已被删除。这就是我现在要做的: 这是我的控制器:Php 试图获取Job Laravel中非对象的属性,php,laravel,Php,Laravel,我正在尝试创建一个注册用户的作业,并尝试跟踪Jeffrey的视频,但由于某种原因,dispatchfrom似乎已被删除。这就是我现在要做的: 这是我的控制器: public function PostSignUp(Request $request) { dispatch(new RegisterUser($request->all())); return 'done'; } 这是我的工作: namespace App\Jobs; use Illuminate\Bus\Que
public function PostSignUp(Request $request)
{
dispatch(new RegisterUser($request->all()));
return 'done';
}
这是我的工作:
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class RegisterUser implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
protected $request;
/**
* Create a new job instance.
* @param $request
* @return void
*/
public function __construct($request)
{
$this->request = $request;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email = $this->request->email;
var_dump('I should register user with email:' . $email);
}
}
我也试着把
只需$request
而不是$request->all()
但是我得到了
Serialization of 'Closure' is not allowed
现在我正在尝试获取非对象错误的属性。这是将整个请求传递给作业的好方法吗?我是否应该以其他方式执行此操作?当您执行
$request->all()
时,这意味着您正在向作业传递一个数组,而不是整个$request。因此,您可以在作业处理程序中简单地执行此操作
public function handle()
{
$email = $this->request['email'];
var_dump('I should register user with email:' . $email);
}
如果需要其他内容,请告诉我:)尝试输入()
谢谢回复!但是我怎样才能传递整个请求对象呢?我刚刚尝试了你的方法,现在我得到了和以前一样的错误:“Closure”的序列化是不允许的。你不能传递整个请求。。。这就是为什么您会得到闭包错误的序列化。您只能传递数组。老实说如果您使用的是
$request->all()
,我的方法应该可以工作。是的,您是对的,我在测试时删除了all()。遗憾的是,您无法传递整个请求对象,但这将适用于现在是的,是的!现在我将请求作为一个对象
$request->input()