LaravelPackages.net
Acme Inc.
Toggle sidebar
tomhatzer/nova-business-hours

Business hours field for Laravel Nova.

46
0
v0.1.1
About tomhatzer/nova-business-hours

tomhatzer/nova-business-hours is a Laravel package for business hours field for laravel nova.. It currently has 0 GitHub stars and 46 downloads on Packagist (latest version v0.1.1). Install it with composer require tomhatzer/nova-business-hours. Discover more Laravel packages by tomhatzer or browse all Laravel packages to compare alternatives.

Last updated

Nova Business Hours Field

This package offers a field for Nova to easily manage your business hours.

Install

composer require tomhatzer/nova-business-hours

Usage

Add this line to your Nova resource fields array:

NovaBusinessHours::make('Business hours', 'business_hours'),

Compatibility

Using this package with spatie/open-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);
Comments