假设我有9个刀片服务器模板(p1.blade.php,直到p9.blade.php)和3个用户(member1,member2和member3)
member1 can only access p1.blade.php, p2.blade.php, p3.blade.php
member2 can only access p4.blade.php, p5.blade.php, p6.blade.php
member3 can only access p7.blade.php, p8.blade.php, p9.blade.php
我该怎么做?
您的访问权限是什么意思?最终,由您决定在视图中呈现哪些模板。
您可以选择在@can
之前有条件地选择@if
或@include
,或使用@includeWhen
如果要根据给定的布尔条件来
@include
视图,则可以使用@includeWhen
指令:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
例如:
<ul id="menu">
@includeWhen($user->role == 'Admin', 'menu.admin', ['data' => $data])
@includeWhen($user->role == 'Moderator', 'menu.moderator', ['data' => $data])
@includeWhen($user->role == 'User', 'menu.user', ['data' => $data])
</ul>
虽然检查角色并不是最佳实践。与政策相同的示例
<ul id="menu">
@includeWhen($user->can('admin'), 'menu.admin', ['data' => $data])
@includeWhen($user->can('moderate'), 'menu.moderator', ['data' => $data])
@includeWhen($user->can('post'), 'menu.user', ['data' => $data])
</ul>