【问题标题】:How to make a custom column with same properties as timestamp() columns?如何制作与 timestamp() 列具有相同属性的自定义列?
【发布时间】:2023-03-14 22:17:01
【问题描述】:

我需要与 created_atupdated_at 列具有相同属性的第三列 ( sorting_date ),它们都是用 生成的>timestamp().

我尝试在迁移中这样做:

$table->datetime('sorting_date')->default(Carbon::now());

但这给我留下了日期/时间的裸字符串,因此我不能调用其他两个存在的所有好方法,例如。 ->format('Y-m')

如何添加列 'sorting_date' 并让它成为与 created_atupdated_at 相同的类的实例?

更新

@PuriaDeveloper 帮助我获得了专栏时间:

$table->timestamp('sorting_date')->nullable()->default(Carbon::now());

但我仍然无法访问附在碳类上的方便的好东西。请看下面我从修补匠的剪纸:

>>>$i->sorting_date
=> "2019-01-25 11:09:57"
>>> $i->created_at
=> Illuminate\Support\Carbon @1548414597 {#3043
     date: 2019-01-25 11:09:57.0 UTC (+00:00),
   }
>>>

我需要我的专栏来生成包含在碳集合中的日期!这是怎么做到的?

【问题讨论】:

    标签: php laravel php-carbon


    【解决方案1】:

    您需要像这样将“sorting_date”添加到模型的 $dates 属性中

    class YourModel extends Model
    {
        protected $dates = [
            'sorting_date',
       ];
    }
    

    有关更多详细信息,请查看此处的文档:

    https://laravel.com/docs/5.7/eloquent-mutators#date-mutators

    【讨论】:

      【解决方案2】:

      你应该使用

      $table->timestamp('sorting_date');
      

      更多信息请查看link

      【讨论】:

      • hmm.. 这似乎是在正确的方向,但是当我用 Carbon::now() 添加时间时我仍然只得到一个裸字符串
      • 试试这个:Carbon::now()->toDateTimeString();
      • 不,对不起,相同的字符串。我会更新问题!
      猜你喜欢
      • 2018-06-10
      • 2015-11-23
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      相关资源
      最近更新 更多