У меня есть промежуточное программное обеспечение, которое использует перенаправление для вызова контроллера, который затем отображает представление.
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')