如何根据用户类型在Laravel中创建路由?

时间:2019-11-13 17:53:15

标签: php laravel routes laravel-6 laravel-authorization

基于已经创建的用户模型和表,基于用户类型创建路由的最佳实践是什么?

用户类型是模型和表字段。

盖茨和/或政策是最佳做法吗?

例如:如果经过身份验证的用户是管理员用户,则可以访问某些视图;如果该用户是非管理员用户,则可以访问其他视图。

互联网上有很多链接,但我找不到“那个”。

1 个答案:

答案 0 :(得分:0)

如果不同的视图具有许多共同点,那么最好将一个视图创建为模板,然后其他视图对该模板进行扩展,并将其不同部分设置为刀片部分。

{{-- Template --}}
<span>The view</span>
<div>
   @yield('content')
</div>
{{-- One of the views --}}
@extends('template')
@section('content')
   <span>Specific content</span>
@endsection

如果每个视图中呈现的内容完全不同,则最好为每个视图使用一个控制器方法。然后,对于一条路由,请使用闭包来根据所需条件决定调用哪种控制器方法。

Route::get('/products/{product}', function (Product $product) {
    $method = Gate::allows('view_details', $product) ? 'viewDetails' : 'viewGeneralInfo';
    return app('ProductController')
        ->callAction($method, ['product' => $product]);
});