Adminix Documentation Help

Chart Bar

Description

The Chart-Bar module displays the ratio of the number of records of a certain entity in accordance with specified criteria. For example it can display ratio of the number of users by roles.

Configuration

namespace App\Adminix\Pages; use AlexKudrya\Adminix\AdminixPage; use AlexKudrya\Adminix\AdminixPageProvider; use AlexKudrya\Adminix\Enums\ColorsEnum; use AlexKudrya\Adminix\Modules\ChartBar\ChartBarItem; use AlexKudrya\Adminix\Modules\ChartBar\ChartBarModule; use App\Models\User; final class UsersByRolePage implements AdminixPageProvider { public static function get(): AdminixPage { return AdminixPage::uri('users-by-role') ->name('users-by-role') ->title('Users by role') ->addModule( ChartBarModule::name('users-by-role') ->title('Users by roles') ->dataSource(User::class) ->yAxisStep(1) ->criteria([ ['is_banned', '=', false], ]) ->addBars( ChartBarItem::label('Client') ->color(ColorsEnum::MEDIUM_SEA_GREEN) ->criteria([['role_id', '=', 1]]), ChartBarItem::label('Guest') ->color(ColorsEnum::ROYAL_BLUE) ->criteria([['role_id', '=', 2]]), ChartBarItem::label('Manager') ->color(ColorsEnum::ORANGE) ->criteria([['role_id', '=', 3]]), ChartBarItem::label('Admin') ->color(ColorsEnum::FIRE_BRICK) ->criteria([['role_id', '=', 4]]), ) ); } }

To add to the page Chart Bar module you need paste AlexKudrya\Adminix\Modules\ChartBar\ChartBarModule class instance as an argument to addModule method of AdminixPage object.

ChartBarModule Configuration

Method

Description

title

Title of the chart on top of this module

title('USERS BY ROLES')

Required

name

Name of module, must be unique in current page.

name('users_by_roles')

Required

dataSource

Source of data for chart, can be an Eloquent Model - \App\Models\User::class or name of table in database users or public.users

dataSource(User::class) // or dataSource('users')

Required

criteria

Database Builder criteria all bars in chart. For example to not show banned users you need paste this:

criteria([ ['is_banned', '!=', 1], ])

Or you can paste parameter from route:

criteria([ ['store_id', '=', 'param:0'], ])

For example, for https://site.com/adminix/users_by_store/2 it wiil be mean that you need dynamics for store_id == 2.

Optional

yAxisStep

Optional Y-axis tick step. When it is omitted, Adminix leaves the Chart.js axis scale automatic. Set it for count-style bar charts when fractional axis labels would be misleading.

yAxisStep(1)

Optional

bars

Array of bars for this chart with personal configuration for each of them

Required

Bars

To add Bars to your ChartBar module you need paste AlexKudrya\Adminix\Modules\ChartBar\ChartBarItem class instance as an argument to addBar or addBars method of ChartBarModule object.

ChartBarItem configuration

Method

Description

label

Label for current bar in chart

label('Client')

Required

color

Color of current bar in chart, can be provided only by AlexKudrya\Adminix\Enums\ColorsEnum Enum class

color(ColorsEnum::MEDIUM_SEA_GREEN)

Required

criteria

Criteria for selection record to count in current bar

For example to display in bar number of users with role_id == 3 you need paste this:

criteria([ ['role_id', '=', 3], ])

Required

Appearance examples

Rendered example:

Adminix bar chart

The rendered canvas has an accessible name and an equivalent visually hidden label/value table, so the series remains available when a browser cannot expose canvas pixels.

Last modified: 23 July 2026