2016-11-27 14 views
2

ユーザーを登録するジョブを作成しようとしていて、Jeffreyのビデオに従ってみましたが、何らかの理由でdispatchfromが削除されたようです。私もジョブLaravelで非オブジェクトのプロパティを取得しようとしています

だけ$requestを入れてみました

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); 
    } 
} 

:これは私の仕事である

public function PostSignUp(Request $request) 
{ 

    dispatch(new RegisterUser($request->all())); 
    return 'done'; 

} 

:これは私のコントローラである

:これは私が今やろうとしているものです$request->all()

の代わりに

Serialization of 'Closure' is not allowed 

今、私はTrying to get property of non-object error.を取得しています。この完全な要求をジョブに渡すのは良い方法ですか?私は他の方法でそれをしなければならないのですか?

答えて

2

)を(入力と応答のための

$request->input() 
+0

それはそれでした!今私はオブジェクトとして要求を得ている – Michael

0

あなたが$request->all()を行うと、それはあなたが仕事全体ではなく$要求配列を渡していることを意味します。したがって、あなたは単にJob Handlerでこれを行うことができます。

public function handle() 
{ 
    $email = $this->request['email']; 

    var_dump('I should register user with email:' . $email); 
} 

何か他のものが必要な場合は、私に教えてください:)

+0

感謝をしてみてください!しかし、私はどのように全体の要求オブジェクトを渡すことができますか? – Michael

+0

私はあなたのメソッドを試してみましたが、これまでと同じエラーが表示されます: 'Closure'のシリアライズは許可されていません – Michael

+0

リクエスト全体を渡すことができないので**クローズのシリアライズ**エラーが発生します。配列を渡すことしかできません。正直言って... '$ request-> all()'を使っているなら、私のメソッドはうまくいくはずです。 – prateekkathal

関連する問題