【问题标题】:Laravel 5.0 eloquent not adding timestamps for created_at and updted_atLaravel 5.0 雄辩不为 created_at 和 updted_at 添加时间戳
【发布时间】:2023-03-10 14:30:02
【问题描述】:

我的控制器中有这段代码

foreach($blogTags as $blogTagsData) 
      {
            $data[] = array(
          'blog_id' => $postBlog->id,
          'user_id' => '1',  
          'tag_id' => $blogTagsData[0]);

      }
      BlogTag::insert($data);

$blogTags 将有 1,2,3 这样的位置。

但是当我执行insert 时,它不会在 created_at 字段和 updated_at 字段中插入时间戳。

即使我的模型里面也有这个

public $timestamps = true;

我做错了什么,,,

只做以下方式的唯一选项吗?

$data['created_at']= \Carbon\Carbon::now()->toDateTimeString();
$data['updated_at']= \Carbon\Carbon::now()->toDateTimeString();

或者有没有更好的方法来包含 laravel 默认时间戳插入..

【问题讨论】:

  • 你能print_r($blogTags)吗?
  • Array ( [0] => 3 [1] => 4 )
  • 您只想为此获取索引 0?
  • 不,我想添加一些额外的值,laravel 以雄辩的方式添加自己。

标签: php mysql laravel laravel-5


【解决方案1】:

试试

foreach ($blogTags as $blogTagsData) {
    BlogTag::create([
        'blog_id' => $postBlog->id,
        'user_id' => '1',
        'tag_id' => $blogTagsData[0]
    ]);
}

【讨论】:

  • 啊..我收到此错误Non-static method Illuminate\Database\Eloquent\Model::save() should not be called statically, assuming $this from incompatible context
  • 虽然这可行,但当添加大量字段时,Model::create() 插入速度较慢,因为它会插入各种博客标签(列、列、列)值($val、$val ,$val);而帖子作者正在以更好的方式进行操作,从而导致 INSERT INTO (column, column, column) VALUES ($val, $val, $val), ($val, $val, $val), ... 。这篇文章解释得更好bensmith.io/speeding-up-laravel-seeders
猜你喜欢
  • 1970-01-01
  • 2016-06-27
  • 2019-01-22
  • 1970-01-01
  • 2020-02-11
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多