6by*_*tes 1 php redirect laravel laravel-5.4
我正在使用Laravel 5.4。我有一个artisan命令,通常由cron运行,但是也可以由用户从网站内部运行。用户在页面上/customer/123,然后单击带有的链接的按钮/customer/vat/123,artisan命令执行其工作,应将浏览器重定向回/customer/123,但并非出于某些原因。
我的路线如下所示:
Route::get('customer/vat/{id}', function ($id) {
Artisan::call('app:reminder', [
'--vat' => $id
]);
});
Run Code Online (Sandbox Code Playgroud)
整个过程按预期运行,只是重定向不执行任何操作。没有错误消息,日志中没有任何内容,只有空白页。
在最底层的工匠命令中,我有:
return redirect::to('/customer/123');
Run Code Online (Sandbox Code Playgroud)
我希望可以将我重定向到上述网址,但事实并非如此。
我是否需要使用其他功能从artisan命令中重定向?
首先,您的artisan命令返回了一些内容,但您没有在路线关闭中返回任何内容。所以很明显,结果将是空的。
其次,即使您说它return Artisan::call('...');不起作用,因为call方法返回的是console命令的退出状态,而不是您在handleartisan命令的方法中返回的输出。
最后,永远不会期望Artisan命令返回view。想一想,工匠命令为什么会返回视图?工匠命令意思是控制台命令,并不意味着回归responses到requests。你有控制器
要解决此问题,您可以执行以下操作:
Route::get('customer/vat/{id}', function ($id) {
Artisan::call('app:reminder', [
'--vat' => $id
]);
return redirect()->to('/customer/123');
});
Run Code Online (Sandbox Code Playgroud)
然后return redirect()->to('/customer/123');从您的工匠命令句柄方法中删除
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |