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

How to create a route in Laravel based on user type?

基于用户模型并且 table 已经创建,根据用户类型创建路由的最佳做法是什么?

Usertype 是一个模型和 table 字段。

盖茨 and/or 政策是最佳实践吗?

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

网上有很多链接,但我找不到"the one"。

如果不同的视图有许多共同的元素,也许创建一个视图作为模板是个好主意,然后其他视图扩展该模板,将它们的不同部分设置为 blade 部分。

{{-- 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]);
});