$ actionNameとGET/POSTパラメータをJobコンストラクタに渡してタスクをキューに入れるミドルウェアがあります。このコード:ジョブハンドラから、依存性注入を使用してLaravelコントローラアクションを呼び出す
$actionName = last(explode('@', $request->route()->getActionName()));
$arguments = $request->query->all();
$job = new HandleApiRequest($actionName, $arguments);
dispatch($job);
そして、ジョブのハンドラでは、私は渡された引数(ジョブのコンストラクタで初期化された引数は、そのことについて心配しないでください)とコントローラメソッドを呼び出すしたいと思います。ここでは、コードされています、私はと呼ばれるコントローラと、それのサービスでRequestオブジェクト(を照らし\のHttp \要求)を使用しないことを
$data = app()->call(ApiController::class . '@' . $this->method, $this->arguments);
問題です。コントローラーのようなものが無限ループに向いているように見えますが、サービスではただ空です。それから私は、これは労働者からコンソールにログインするを参照してください。
[Illuminate\Contracts\Container\BindingResolutionException]
Target [App\Http\Requests\Request] is not instantiable while building [App\Http\Controllers\Api\ApiController].
の質問ですが、どのように私はきちんと仕事ハンドラでRequestオブジェクトを初期化することができますか?
ありがとう!
あなたはそれをどのくらい正確に行うのかはわかりませんが、Laravelにコントローラを構築してそれを処理させようとしましたか? '$ controller = \ App :: Make(ApiController :: class); call_user_func([$ controller、$ this-> method]、$ this-> arguments); '? – user3158900
私はこれを試しましたが、問題は解決しません。とにかく、お返事ありがとうございます:) – Bushikot