У меня есть собственный не-Eloquent класс, который называется Item
.В конструкторе Item
пытается аутентифицироваться с моим приложением.Затем у меня есть метод Auth()
, чтобы проверить, прошла ли аутентификация успешно, и если не запускать перенаправление.
public function Auth() {
if (isset($this->authenticated)) {
return $this;
} else {
return redirect('/auth');
}
}
Я использую метод Auth
для статического доступа к Item
через Item
Фасад.Предполагаемый результат состоит в том, что если элемент аутентифицирован, мы переходим к индексу с этим элементом в качестве переменной.В противном случае перенаправление будет инициировано.
public function index() {
$item = Item::Auth();
return view('index',$item);
}
Однако, если не аутентифицировано, все, что происходит, - это объект Laravel RedirectResponse
, который передается в представление индекса.Как я могу заставить это перенаправление фактически запустить?
Решения, о которых я думал, но не люблю
if ($item instanceOf RedirectResponse)...
в контроллере, но это кажется неуклюжим
$item = new Item; if ($item->authenticated)...
это нормально для контроллера, но я хочу вызвать перенаправление из нескольких частей приложения, чтобы было много повторного использования кода, который не был бы эффективен.
Спасибо за любую помощь.Либо на фасаде, либо на объекте Redirect.