我感兴趣是否有办法在同一个多身份验证应用程序中生成多个独立的 Laravel Nova 仪表板?
例如。
管理员仪表板 - {admin.example.com/nova/users}
会员仪表板 = {example.com/nova/home}
您可以在 Laravel Nova 4 文档中找到有关创建附加仪表板的所有信息
要创建新的仪表板,请使用命令
php artisan nova:dashboard MemberDashboard
然后在
app/Nova/Dashboards
中找到MemberDashboard.php
文件
<?php
namespace App\Nova\Dashboards;
use Laravel\Nova\Dashboard;
use Laravel\Nova\Cards\Help;
class MemberDashboard extends Dashboard
{
/**
* Get the cards for the dashboard.
*
* @return array
*/
public function cards()
{
return [
Help,
];
}
}
要更改默认网址,您可以添加到
MemberDashboard
方法
/**
* Get the URI key of the dashboard.
*
* @return string
*/
public function uriKey()
{
return 'dashboard-for-member';
}
之后您必须在
App/Providers/NovaServiceProvider
中注册此仪表板
use App\Nova\Dashboards\Main;
use App\Nova\Dashboards\MemberDashboard;
/**
* Get the dashboards that should be listed in the Nova sidebar.
*
* @return array
*/
protected function dashboards()
{
return [
Main::make(),
MemberDashboard::make()->canSee(function ($request) {
return $request->user()->isMember();
}),
];
}
要检查用户的角色,您需要添加方法
isMember()
到将返回布尔值的用户模型
同样,您可以创建 AdministratorDashboard 并在其中定义不同的卡。