我有中间件使用重定向来调用控制器,然后控制器显示视图。
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
方法方面做错了。
答案 0 :(得分:5)
尝试在限定名称前添加“\”。
action('\Full\Namespace\To\Controller\ErrorController@fourOhThree')