0
在Laravel 5.4中,我为显示特定路线创建了一个定制服务提供商。我的代码工作正常,但我面临着一个问题。问题是,如果用户ABC
分配两条路线(菜单的),例如Laravel服务提供商验证路线
user\list
user\form
现在,如果用户ABC
尝试调用像user\show_form
其他网址,以便用户ABC
可以访问此路线(菜单)。所以如果用户ABC没有权限访问user\show_form
并且用户尝试访问这条路线(菜单),那么它有可能重定向到404页面。
我的服务提供商
class UserNavigationServiceProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot() {
$this->getUserNavigation();
}
/**
* Register the application services.
*
* @return void
*/
public function register() {
//
}
/**
* getUserNavigation() function use for after user login
* fetch the rights
* @return void
*/
private function getUserNavigation() {
$user_permission = user_permission();
View::composer('admin.navbar', function($view) use ($user_permission) {
$auth_user = Auth::user();
$user_id = $auth_user->id;
$user_group = UserPermissionsGroup::select('user_permissions_id')
->where('user_id', $user_id)
->get()
->toArray();
$menu = array();
foreach ($user_group as $k => $v) {
foreach($v as $kv) {
$menu[$kv] = id_to_text($kv, $user_permission);
}
}
$view->with('menu_list', $menu);
});
}
}
请建议我该如何解决。
我怎么可以设置UserNavigationServiceProvider –
'$ menu'全局变量所以'$ menu'全局变量,我可以访问 –
您可以创建一个门面一个setter方法和getter方法的任何控制器。从UserNavigationServiceProvider中设置它的值,并使用控制器中的get方法来获取该值。或者你可以在会话中设置它。 希望这有助于.. – sp11