PHP code example of almirhodzic / nova-toggle-5
1. Go to this page and download the library: Download almirhodzic/nova-toggle-5 library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
almirhodzic / nova-toggle-5 example snippets
use AlmirHodzic\NovaToggle5\Toggle;
public function fields(NovaRequest $request)
{
return [
Toggle::make('Active', 'is_active'),
];
}
Toggle::make('Active', 'is_active')
->onColor('#00d5be', '#009689') // Light mode, Dark mode
->offColor('#e5e5e5', '#323f57');
Toggle::make('Active', 'is_active')
->onBullet('white') // Same for both modes
->offBullet('white', 'grey'); // Light mode, Dark mode
Toggle::make('Active', 'is_active')
->valueLabelText('ON', 'OFF'); // ON label, OFF label
Toggle::make('Active', 'is_active')
->valueLabelText('ON', 'OFF')
->valueLabelOnColors('#ffffff') // ON label color
->valueLabelOffColors('#a1a1a1', '#737373'); // OFF label colors (light, dark)
Toggle::make('Show', 'show')
->toastLabelKey('question'); // Uses $model->question instead of default
Toggle::make('Active', 'is_active')
->toastShow(false); // No toast notification on toggle
namespace App\Nova\Filters;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;
class IsActiveFilter extends Filter
{
public $name = 'Active Status';
public $component = 'select-filter';
public function apply(NovaRequest $request, Builder $query, mixed $value): Builder
{
if ($value === 'active') {
return $query->where('is_active', true);
}
if ($value === 'inactive') {
return $query->where('is_active', false);
}
return $query;
}
public function options(NovaRequest $request): array
{
return [
'Active' => 'active',
'Inactive' => 'inactive',
];
}
}
use App\Nova\Filters\IsActiveFilter;
public function filters(NovaRequest $request): array
{
return [
new IsActiveFilter,
];
}
namespace App\Nova\Filters;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Laravel\Nova\Filters\BooleanFilter;
use Laravel\Nova\Http\Requests\NovaRequest;
class IsActiveFilter extends BooleanFilter
{
public $name = 'Active Status';
public function apply(NovaRequest $request, Builder $query, mixed $value): Builder
{
if (isset($value['active'])) {
return $query->where('is_active', $value['active']);
}
if (isset($value['inactive'])) {
return $query->where('is_active', !$value['inactive']);
}
return $query;
}
public function options(NovaRequest $request): array
{
return [
'Active' => 'active',
'Inactive' => 'inactive',
];
}
}
Toggle::make('Active', 'is_active')
->filterable()
...
Toggle::make('Active', 'is_active')
->helpOnIndex('Toggle to activate/deactivate')
->helpOnForm('Enable this option to activate the feature')
->helpOnDetail('Current activation status');
Toggle::make('Active', 'is_active')
->hideWhen(function ($request, $resource) {
return $resource->status === 'archived';
});
Toggle::make('Active', 'is_active')
->readonlyWhen(function ($request, $resource) {
return !$request->user()->isAdmin();
});
use AlmirHodzic\NovaToggle5\Toggle;
use App\Nova\Filters\IsActiveFilter;
public function fields(NovaRequest $request)
{
return [
ID::make()->sortable(),
Text::make('Name'),
Toggle::make('Active', 'is_active')
->filterable()
->onColor('#10b981', '#059669')
->offColor('#ef4444', '#dc2626')
->onBullet('#ffffff')
->offBullet('#ffffff')
->valueLabelText('ON', 'OFF')
->valueLabelOnColors('#ffffff')
->valueLabelOffColors('#fecaca', '#fca5a5')
->helpOnIndex('Click to toggle status')
->helpOnForm('Enable to make this item visible')
->toastShow(true)
->readonlyWhen(function ($request, $resource) {
return !$request->user()->can('edit', $resource);
}),
Toggle::make('Featured', 'is_featured')
->onColor('#f59e0b')
->offColor('#6b7280')
->valueLabelText('★', '☆')
->toastShow(false)
->hideWhen(function ($request, $resource) {
return !$resource->is_active;
}),
Toggle::make('Show FAQ', 'show')
->toastLabelKey('question') // Uses $faq->question for toast message
->helpOnIndex('Toggle visibility'),
];
}
public function filters(NovaRequest $request): array
{
return [
new IsActiveFilter,
];
}
bash
php artisan nova:filter IsActiveFilter