Laravel nova - 从仪表板重定向

guy*_*oni 9 laravel laravel-nova

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

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

但是,我想添加重定向逻辑(登陆页面取决于用户角色),因此当导航到/用户时将被重定向到与他相对应的资源或工具。

(我已经在登录后实现了重定向(/sf/answers/3804158641/

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

知道我可以在哪里放置重定向逻辑吗?

Ron*_*den 8

新星4号;您可以像这样重写initialPath

class NovaServiceProvider extends NovaApplicationServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();

        Nova::initialPath('/resources/users');
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

这样,您Users在登录时就会被重定向到该资源。


小智 0

我自己刚刚弄清楚了这一点。在 Routes/web.php 文件中,添加重定向路由:

Route::redirect('/','/resources/{resource_name}');
Run Code Online (Sandbox Code Playgroud)

其中 {resource_name} 是资源的复数形式。例如,“/resources/posts”。

在您的情况下,您可能希望重定向到您自己的控制文件,可以在其中放置重定向逻辑。

Route::get('/', 'YourController@rootRedirectLogic');
Run Code Online (Sandbox Code Playgroud)

然后在控制器YourController中添加方法:

public function rootRedirectLogic(Request $request) {
    // some logic here
    return redirect()->route('YourRoute');
}
Run Code Online (Sandbox Code Playgroud)

其中“YourRoute”是您要将用户发送到的路线的名称。

(在 dillingham 的评论中找到了此解决方案的线索:https://github.com/laravel/nova-issues/issues/393