Laravel 5.2 Blade 中的条件扩展模板

Laravel 5.2 conditional extends template in Blade

我想根据条件扩展模板。我知道我可以在 blade 中使用 @if @else 语句。我在做同样的事情,但是 blade 扩展了两个模板。不知道为什么。

@if(isset(Auth::user()->id))
    @extends('layouts.adminlayout')
@else
   @extends('layouts.default')
@endif

@section('content')
    i am the home page
    {{ isset(Auth::user()->id) }}
@stop

因为,你可以看到我正在检查用户是否 login-ed 然后扩展模板布局。但它是从这两个布局延伸出来的。

请帮助我。

扩展 blade 视图的第一行必须是 @extends 指令。 为此尝试使用三元运算符。

@extends(isset(Auth::user()->id) ? 'layouts.adminlayout' : 'layouts.default');

更新基于角色的布局。有关更多条件,请参阅 this 问题。

@extends((!isset(Auth::user()->id))? 'layouts.default': ((Auth::user()->role == 'admin') ? 'layouts.adminlayout' : 'layouts.moderatorlayout'));

试试这个代码,parenterais很重要

@extends(Auth::user()->rol_id == 1 ? 'layouts.admin' : ((Auth::user()->rol_id == 2) ? 'layouts.client' : 'layouts.client'))