我有一些 Blade 模板文件,我想根据存储在 session 中的当前用户的权限动态包含在我的 View 中。下面是我写的代码:

@foreach (Config::get('constants.tiles') as $tile)
    @if (Session::get('currentUser')->get('permissions')[$tile]['read'] == 1)
        @include('dashboard.tiles.' . $tile)
    @endif
@endforeach

Blade 不允许我将常量字符串与变量 $tile 的值连接起来。但是我想实现这个功能。对此的任何帮助将不胜感激。

最佳答案

您不能在 Blade 模板命令中连接字符串。因此,您可以将包含的文件名分配给 php 变量,然后将其传递给 Blade 模板命令。

@foreach (Config::get('constants.tiles') as $tile)
   @if (Session::get('currentUser')->get('permissions')[$tile]['read'] == 1)
     <?php $file_name = 'dashboard.tiles.' . $tile; ?>
     @include($file_name)
   @endif
@endforeach

Laravel 5.4 - 在 Blade 模板中使用字符串连接的动态包含
@foreach (Config::get('constants.tiles') as $tile)
   @if (Session::get('currentUser')->get('permissions')[$tile]['read'] == 1)
     @include('dashboard.tiles.' . $tile)
   @endif
@endforeach

关于Laravel Blade @include View 使用变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27963037/

10-12 03:31