Downloads
Stars
Version
This package offers a field for Nova to easily manage your business hours.
composer require tomhatzer/nova-business-hours
Add this line to your Nova resource fields array:
NovaBusinessHours::make('Business hours', 'business_hours'),
Create a getter for your business hours field in your model like this:
public function getBusinessHoursAttribute($value)
{
$jsonDecoded = json_decode($value);
return collect($jsonDecoded)->transform(function($day) {
return array_filter(
array_map(function($item) {
if($item->isOpen) {
return substr_replace($item->open, ':', 2, 0) . '-' . substr_replace($item->close, ':', 2, 0);
}
return null;
}, $day)
);
})->all();
}
In this case the fields name will be business_hours
. Customize this according to your database column name.
Afterwards you can use it to fill the OpeningHours
class with your existing business hours like this:
// Add the use at the top of each file where you want to use the OpeningHours class:
use Spatie\OpeningHours\OpeningHours;
// Get your model instance
$model = Model::find(1);
// Fill the OpeningHours class with your business hours
$openingHours = OpeningHours::create($model->business_hours);