Laravel Nova-从仪表板重定向

时间:2019-01-29 17:38:06

标签: laravel laravel-nova

我想从我的Laravel Nova应用中删除仪表板。

我发现从边栏菜单中删除它很容易-只需注释/views/dashboard/navigation.blade.php代码。

但是,我想添加一个重定向逻辑(登录页面取决于用户角色),以便在导航到/时,用户将被重定向到与其相对应的资源或工具。

(登录(https://stackoverflow.com/a/54345123/1039488后,我已经实现了重定向)

我试图用卡片来做,但是看起来这不是正确的解决方案。

任何想法都可以在哪里放置重定向逻辑?

3 个答案:

答案 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>***;
}

**更改为您自己的资源名称