如何根据用户类型在 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]);
});
基于用户模型并且 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]);
});