如何制作某些刀片服务器模板可以由1个用户访问,但不能由其他用户访问

问题描述 投票:0回答:1

假设我有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

我该怎么做?

laravel laravel-5 authorization laravel-blade
1个回答
0
投票

您的访问权限是什么意思?最终,由您决定在视图中呈现哪些模板。

您可以选择在@can之前有条件地选择@if@include,或使用@includeWhen

Including sub-views

如果要根据给定的布尔条件来@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>
© www.soinside.com 2019 - 2024. All rights reserved.