Laravel 5.1 eloquent :: attach()方法,带时间戳

时间:2015-11-16 17:01:12

标签: laravel eloquent laravel-5.1

我似乎遇到时间戳问题 - 尝试通过User数据透视表将Lectures附加到favorites时 - 没有更新日期。

这是我的迁移:

Schema::create('favorites', function (Blueprint $table) {

    $table->integer('lecture_id')->unsigned();
    $table->integer('user_id')->unsigned();
    $table->timestamps();

    $table->primary(['lecture_id', 'user_id']);

});

讲座关系:

public function favorites()
{
    return $this->belongsToMany(User::class, 'favorites');
}

用户关系:

public function favorites()
{
    return $this->belongsToMany(Lecture::class, 'favorites')
                ->withTimestamps();
}

每当我附上:

$event->lecture->favorites()->attach($this->user->id);

字段created_atupdated_at都设置为0000-00-00 00:00:00

知道我可能做错了吗?

1 个答案:

答案 0 :(得分:4)

为了将时间戳附加到每个模型关系,您需要链接方法->withTimestamps()

因此,对于考试,在您的情况下,它将是以下内容:

public function favorites()
{
    return $this->belongsToMany(User::class, 'favorites')->withTimestamps(); 
}

然后将附加时间戳。希望这会对你有所帮助。