代码之家  ›  专栏  ›  技术社区  ›  Paulo Hgo

Laravel 8-在现有叶片内包含叶片布局

  •  0
  • Paulo Hgo  · 技术社区  · 3 年前

    我对Laravel非常陌生,正在使用版本8。这可能是一个简单的问题,但我正在努力寻找一个体面、简单的答案。 我有一个名为的布局视图/模板 app.blade.php 。在里面,我想检查用户是否登录以及角色id。根据用户的角色,我想显示该角色的特定导航栏。

    这是我最初的想法,但显然不起作用,所有的导航条都显示出来了,我理解为什么。我要找的是类似 include 来自香草PHP的语句。

    @if (Auth::check())
      @if(Auth::user()->role_id == 1)
          @extends('layouts.adminnav')
      @elseif (Auth::user()->role_id == 2)
          @extends('layouts.devnav')
      @else
         @extends('layouts.usernav')
      @endif
    @endif
    

    谢谢你的指点。

    0 回复  |  直到 3 年前
        1
  •  0
  •   Peter    3 年前

    根据你的if-the-else声明,你坚持在登录时不要看到你的用户导航栏。这可能就是正在发生的事情。如果你已经登录,你可以看到你的导航栏。

        2
  •  0
  •   Paulo Hgo    3 年前

    事实上我发现了问题。 @include 而不是 @extends 在if语句内部。如果我使用 @延伸 我相信这是故意的。 无论如何,解决方案如下所示:

     @if (Auth::check())
        @if(Auth::user()->role_id == 1)
          @include('layouts.adminnav')
        @elseif (Auth::user()->role_id == 2)
          @include('layouts.devnav')
        @else
         @include('layouts.usernav')
        @endif
    @endif