Skip to main content

Overview

Nova dashboards provide a convenient way to build information overview pages that contain a variety of metrics and cards.
Dashboard

Default Dashboard

Nova ships with a default App\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
More information regarding dashboard metrics can be found within our documentation on metrics.

Defining Dashboards

Custom dashboards may be generated using the nova:dashboard Artisan command. By default, all new dashboards will be placed in the app/Nova/Dashboards directory:
Once your dashboard class has been generated, you’re ready to customize it. Each dashboard class contains a 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 the name 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 the dashboards 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 a menu method on your dashboard class:
app/Nova/Dashboards/UserInsights.php
Please refer to the documentation on menu customization for more information.

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 the showRefreshButton 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 the canSee 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
In the example above, we are using Laravel’s 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