Как использовать возврат Redirect, внутри View? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть страница просмотра

@if((Voyager::can('delete_'.$dataType->name))||(Voyager::can('edit_'.$dataType->name))||(Voyager::can('browse_'.$dataType->name)))
 some function here
@elseif

return Redirect :: to ('404page') @ endif

error

ErrorException в строке VerifyCsrfToken.php156: Попытка получить свойство необъекта

, иначе код условия не работает. Как я могу вернуться внутрь от одного к другому. Любая помощь будет принята.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы не можете использовать перенаправление ответ в представлении.Ответ перенаправления - это ответ с кодом 3XX.Коды ответов являются частью заголовка, но заголовки можно отправить только один раз.Чтобы отправить данные просмотра, вы должны уже отправили заголовки, поэтому вы больше не можете возвращать ответ перенаправления.Однако вы можете использовать JavaScript:

@if((Voyager::can('delete_'.$dataType->name))||(Voyager::can('edit_'.$dataType->name))||(Voyager::can('browse_'.$dataType->name)))
 some function here
@else
    <script> window.location.href = "{!! url()->to('404page') !!}"; </script>
@endif

Обратите внимание, что это фактически загрузит страницу, и пользователь может предотвратить перенаправление, поэтому не показывайте ничего ограниченного.

В идеале вы бынеобходимо вернуть ответ перенаправления перед просмотром в контроллере или промежуточном программном обеспечении

0 голосов
/ 26 сентября 2018

Измените @elseif на @else

@if((Voyager::can('delete_'.$dataType->name))||(Voyager::can('edit_'.$dataType->name))||(Voyager::can('browse_'.$dataType->name)))
    //
@else
    Redirect::to('404page')
@endif

И на пользователя redirect() вместо Redirect::to.Или, если вы хотите отправить пользователя на страницу ошибки 404, используйте abort('404').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...