У меня есть промежуточное программное обеспечение, которое использует перенаправление для вызова контроллера, который затем отображает представление.Перенаправить действие на контроллер в разных пространствах имен
public function handle($request, Closure $next)
{
redirect()->action('Full\Namespace\To\Controller\[email protected]');
}
У меня также есть это как маршрут. Когда я следую по маршруту, вид отображается в порядке. Когда я пытаюсь перенаправить с помощью action
и передаю пространство имен моего контроллера, laravel пытается найти контроллер в базовом приложении. Я получаю ошибку
Action App\Http\Controllers\Full\Namespace\To\Controller\[email protected] not defined.
Когда контроллер находится в
App\Vendor\Myname\Mypackagename\Controllers\[email protected]
Я пространство именами моего контроллера правильно, насколько я могу сказать, как он совпадает с другими контроллерами в пространствах имёны этот каталоге. Это единственный контроллер, который я пытаюсь вызвать из действия.
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
.
Пробовал это. Ошибка уходит, но контроллер не срабатывает. – myol
Я не знаю, что вы подразумеваете под «контроллером не горит» – lagbox
Как и в перенаправлении, похоже, ничего не делает. Любой код в 'ErrorController' не запускается. ... Думаю, теперь это другая проблема? – myol