我有中间件使用重定向来调用控制器,然后控制器显示一个视图.
public function handle($request, Closure $next) { redirect()->action('Full\Namespace\To\Controller\ErrorController@fourOhThree'); }
我也有这条路线.当我按照路线时,视图显示正常.当我尝试重定向并使用action
我的控制器的命名空间时,laravel尝试在基础应用程序中找到控制器.我收到错误
Action App\Http\Controllers\Full\Namespace\To\Controller\ErrorController@fourOhThree not defined.
当控制器位于
App\Vendor\Myname\Mypackagename\Controllers\ErrorController@fourOhThree
据我所知,我已正确命名控制器,因为它与此目录中的其他命名空间控制器相匹配.这是我试图通过动作调用的唯一控制器.
ErrorController.php
内 App\Vendor\Myname\Mypackagename\Controllers
namespace Full\Namespace\To\Controller; use App\Http\Controllers\Controller; class ErrorController extends Controller { public function fourOhThree() { return view('...'); } }
我认为我在如何将命名空间控制器传递给action
方法时做错了.
尝试在限定名称前添加"\".
action('\Full\Namespace\To\Controller\ErrorController@fourOhThree')