if-else не работает в шаблонах лезвий laravel framework

Мой вопрос: у меня есть страница в качестве шаблона блейда Laravel. Если пользователь вошел в систему, моя страница должна быть расширена из основного макета. Если пользователь не вошел в систему, моя страница должна быть расширена из другого основного макета.

Но мой оператор if-else не работает

 <?php 
 if (Auth::check()){?>
 @extends('layouts.outside');
 <?php } else{ ?>
     @extends('layouts.admin');
 <?php }?>

Я также попробовал версию Blade if-else следующим образом:

@if (Auth::check())
 @extends('layouts.outside')
@else
 @extends('layouts.admin')
@endif

Это тоже не сработало. Каждый раз, когда утверждение истинно или ложно, блок в операторе if и else срабатывает один за другим. Как нет, если еще. Я имею в виду, что каждый раз, когда он вызывает layouts.outside один раз, и только внизу одна и та же страница снова загружается с layouts.outside, независимо от того, вошел ли пользователь в систему или нет.

Спасибо


person Ali insan Soyaslan    schedule 22.12.2014    source источник
comment
Вы просто забыли { в конце своего else заявления! Также в начале оператора else ваши открывающие теги php необходимо удалить.   -  person Rizier123    schedule 22.12.2014
comment
Auth::check() на самом деле не должно быть внутри представления. Обычно что-то подобное происходит в routes.php, filters.php или в созданном вами контроллере. Просто пища для размышлений.   -  person Tim Lewis    schedule 22.12.2014


Ответы (1)


<?php
if (Auth::check()){
Blade::extends('layouts.outside');
<?php } else 
extends('layouts.admin');
}?>

Вам не хватает { в другом, а также почему этот тег php удаляет его

     <?php
        if (Auth::check()){
        Blade::extends('layouts.outside');
        } else{ 
        extends('layouts.admin');
        }
     ?>
person AddcitedToLearn    schedule 22.12.2014
comment
У него также есть открывающий тег для многого! - person Rizier123; 22.12.2014
comment
Да, я видел, что это просто было быстро, нажав на сообщение. - person AddcitedToLearn; 22.12.2014
comment
Мне действительно очень жаль :( теперь я так расстроен, что не смог правильно задать вопрос. Но я исправил вопрос прямо сейчас. Спасибо за быстрый ответ. В следующий раз я буду осторожен с тегами @Rizier123 :) - person Ali insan Soyaslan; 22.12.2014
comment
@Soyaslan Пожалуйста, не делайте просто Stealth edits, четко отметьте это как редактирование, если вы измените свой вопрос! Как знать, что ответ здесь неверен на ваш вопрос сейчас, но был правильным на исходный! - person Rizier123; 22.12.2014
comment
Гораздо проще избежать таких выдач, если вы используете синтаксис с двоеточием, например: <?php if(): ?> <!-- stuff --> <?php else: ?> <!-- stuff --> <?php endif; ?> - person prodigitalson; 22.12.2014
comment
Или просто используйте синтаксис шаблона блейда целиком @if(...) @else(...) @endif - person Victor; 13.08.2015