【问题标题】:Laravel timestamp carbon non-objectLaravel 时间戳碳非对象
【发布时间】:2014-04-09 16:49:14
【问题描述】:

您好,我想创建自己的时间戳,它可以与碳 diffIn 函数一起使用

public function up()
{
    Schema::create('global_limits', function(Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id');
        $table->integer('c_limiter');
        $table->timestamp('time_comment');
        $table->timestamps('');
    });
}

这是我如何创建 timespam 到 time_comment

  $first_limit = new Limiter;
  $first_limit->c_limiter = 1;
  $first_limit->user_id = $id;
  $first_limit->time_comment = new DateTime;

  $first_limit->save();

$user = User::find(1)->limits;

echo $user->time_comment 我得到 2014-04-09 18:20:55 但是当我这样做时 echo $user->time_comment->diffInSeconds();

Call to a member function diffInSeconds() on a non-object on proper timestamp.

奇怪的是,当我用 created_at 和 uptaded_at 做同样的事情时,它工作正常。

echo $user->created_at->diffInSeconds();

我知道我可以为此使用 updated_at 但我想使用 time_comment 我有我的理由。

我不想要 diffForHumans,因为我的目标是使用

    if($user->time_comment->diffInSeconds() > 500)
{do something)else {do this}

【问题讨论】:

    标签: laravel-4 timestamp


    【解决方案1】:

    默认情况下,Laravel 仅将 created_atupdated_atdeleted_at 视为 Carbon 实例。您需要将以下内容添加到您的用户模型中

    public function getDates()
    {
        return array('created_at', 'updated_at', 'time_comment');
    }
    

    这告诉 Laravel 将数组中的列视为 Carbon 实例。

    【讨论】:

    • 我将它添加到我的用户模型中,但仍然是同样的错误。 Nvm 解决了我需要将它添加到限制器模型 :) 感谢您的帮助!
    【解决方案2】:
    $first_limit = new Limiter;
    $first_limit->c_limiter = 1;
    $first_limit->user_id = $id;
    $first_limit->time_comment = new DateTime; ///////////////// CHANGE IT to Carbon::now()
    
    $first_limit->save();
    

    您确定将 Carbon 实例添加到 time_comment

    【讨论】:

      【解决方案3】:

      从 Laravel 8 开始(不确定从哪个版本开始存在),您只需将其添加到模型中

      protected $dates = ['time_comment'];
      

      得到一个碳。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-28
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多