我想从我的Laravel Nova应用中删除仪表板。
我发现从边栏菜单中删除它很容易-只需注释/views/dashboard/navigation.blade.php
代码。
但是,我想添加一个重定向逻辑(登录页面取决于用户角色),以便在导航到/
时,用户将被重定向到与其相对应的资源或工具。
(登录(https://stackoverflow.com/a/54345123/1039488后,我已经实现了重定向)
我试图用卡片来做,但是看起来这不是正确的解决方案。
任何想法都可以在哪里放置重定向逻辑?
答案 0 :(得分:2)
当前此方法有效:
向NovaServiceProvider.php添加启动方法:
Nova::script('menuFix', __DIR__.'/../../resources/js/fixMenu.js');
使用以下命令创建文件fixMenu.js:
if (location.pathname == '/' || location.pathname == '/dashboards/main'){
location.href = '/whereToRedirect'
}
答案 1 :(得分:0)
我自己就弄清楚了。在您的Routes / web.php文件中,添加重定向路由:
Route::redirect('/','/resources/{resource_name}');
其中{resource_name}是资源的复数形式。例如,“ / resources / posts”。
在您的情况下,您可能需要重定向到自己的控制文件,可以在其中放置重定向逻辑。
Route::get('/', 'YourController@rootRedirectLogic');
然后在控制器YourController中添加方法:
public function rootRedirectLogic(Request $request) {
// some logic here
return redirect()->route('YourRoute');
}
其中“您的路线”是您要将用户发送到的路线的名称。
(dillingham在此处的评论中找到了该解决方案的线索:https://github.com/laravel/nova-issues/issues/393)
答案 2 :(得分:0)
我碰到了此链接:Laravel Nova - Point Nova path to resource page
不确定这是一个永久解决方案,但可以编辑LoginController.php。
public function redirectPath()
{
return Nova::path().'/resources/***<resource_name>***;
}
**更改为您自己的资源名称