Overview
Nova dashboards provide a convenient way to build information overview pages that contain a variety of metrics and cards.
Default Dashboard
Nova ships with a defaultApp\Nova\Dashboards\Main
dashboard class containing a cards
method. You can customize which cards are present on the default dashboard via this method:
app/Nova/Dashboards/Main.php
Defining Dashboards
Custom dashboards may be generated using thenova:dashboard
Artisan command. By default, all new dashboards will be placed in the app/Nova/Dashboards
directory:
cards
method. This method should return an array of card or metric classes:
app/Nova/Dashboards/UserInsights.php
Dashboard Names
By default, Nova will use the dashboard’s class name to determine the displayable name of your dashboard that should be placed in the left-side navigation bar. You may customize the name of the dashboard displayed in the left-side navigation bar by overriding thename
method within your dashboard class:
app/Nova/Dashboards/UserInsights.php
Dashboard URI Keys
If you need to change the URI of the dashboard, you may override the dashboard class’uriKey
method. Of course, the URI represents the browser location that Nova will navigate to in when you click on the dashboard link in the left-side navigation bar:
app/Nova/Dashboards/UserInsights.php
Registering Dashboards
To register a dashboard, add the dashboard to the array returned by thedashboards
method of your application’s App/Providers/NovaServiceProvider
class. Once you have added the dashboard to this method, it will become available for navigation in Nova’s left-side navigation bar:
app/Providers/NovaServiceProvider.php
Customizing Dashboard Menus
You can customize the dashboard’s menu by defining amenu
method on your dashboard class:
app/Nova/Dashboards/UserInsights.php
Refreshing Dashboard Metrics
Occasionally, you may wish to refresh all the metrics’ values inside your dashboard. You may do this by enabling the refresh button by using theshowRefreshButton
method on the dashboard instance:
app/Providers/NovaServiceProvider.php
Authorization
If you would like to only expose a given dashboard to certain users, you may invoke thecanSee
method when registering your dashboard. The canSee
method accepts a closure which should return true
or false
. The closure will receive the incoming HTTP request:
app/Providers/NovaServiceProvider.php
Authorizable
trait’s can method on our User
model to determine if the authorized user is authorized for the viewUserInsights
action. However, since proxying to authorization policy methods is a common use-case for canSee
, you may use the canSeeWhen
method to achieve the same behavior. The canSeeWhen
method has the same method signature as the Illuminate\Foundation\Auth\Access\Authorizable
trait’s can
method:
app/Providers/NovaServiceProvider.php