如何更新' updated_at'更新数据透视表时的模型

时间:2016-09-14 10:58:11

标签: php database laravel model many-to-many

我使用laravel,我在产品和订单之间有很多关系。有一个名为order-product的数据透视表,其中包含不时更新的附加信息。我想更新' updated_at'当数据透视表中的相应行更新时,或者例如,如果添加了新产品,则在订单表中显示。 这可能吗?

产品和订单之间的关系是belongsToMany()

编辑:这是一些代码

class Order extends Model
{ 
protected $table = 'order';
protected $dates = ['updated_at'];

 public function products()
    {
        return $this->belongsToMany(Product::class, 'order_product');
    }
}

当我想通过调用删除产品时 $命令 - >产品(5) - >分离()

那么我在哪里放置laravel文档中提到的$ touches数组here

我已经尝试将其添加到产品型号中,但它无效。

1 个答案:

答案 0 :(得分:1)

您可以使用Touching Parent Timestamps,这是一个示例(来自laravel docs)。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    /**
     * All of the relationships to be touched.
     *
     * @var array
     */
    protected $touches = ['post'];

    /**
     * Get the post that the comment belongs to.
     */
    public function post()
    {
        return $this->belongsTo('App\Post');
    }
}