【问题标题】:how to define time Field in laravel nova admin panel如何在 laravel nova 管理面板中定义时间字段
【发布时间】:2020-01-01 17:40:57
【问题描述】:

我的数据库中有时间列。我需要为此列定义字段。

这是我的迁移:

 $table->date('date');
            $table->time('time_begin');
            $table->time('time_Enable');

这是我的资源:

    public function fields(Request $request)
    {
        return [

            datetime::make('time_Enable'),
            datetime::make('time_begin'),

        ];
    }

我只需要时间而不是日期和时间

【问题讨论】:

    标签: laravel laravel-nova


    【解决方案1】:

    令人印象深刻的是,Nova 不仅没有 Time 字段,而且不支持 DateTime 字段的仅时间用法。

    另一方面,Nova 有很多第三方组件,可以通过 composer 轻松添加。我确实在Nova Packages 上寻找了一些,并找到了两个可行的选项:Laraning Time FieldMichielfb Time Field,它们似乎相当不错并且是开源的。

    尽管如此,它们在 GitHub 上的 star 相对较少,并且最新版本相当旧,对于如此简单的功能来说这不是什么大问题,但我宁愿使用原生功能,所以这就是我的实现方式:

    Text::make('Duration')
        ->placeholder('##:##:##')
        ->rules('date_format:"H:i:s"')
        ->help('hh:mm:ss'),
    

    所以基本上我使用了带有格式验证的文本字段。还添加了占位符和帮助属性,使其更直观。它运作良好!我将它与time 数据库字段一起使用。其他大学建议使用遮罩组件,但它也需要第三方组件,我没有找到好的选择。

    【讨论】:

      【解决方案2】:

      来自docs
      您可以使用 format 方法自定义 DateTime 字段的显示格式。格式必须是Moment.js支持的格式:

      DateTime::make('time_Enable')->format('H mm'),
      DateTime::make('time_begin')->format('H mm'),
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-07
        • 2020-06-21
        • 2019-02-21
        • 1970-01-01
        • 2011-03-29
        • 2020-07-24
        • 1970-01-01
        相关资源
        最近更新 更多