gpt4 book ai didi

many-to-many - 在多对多关系的情况下更新数据透视表 laravel4

转载 作者:行者123 更新时间:2023-12-01 17:53:46 25 4
gpt4 key购买 nike

我最近开始使用 Laravel4。在多对多关系的情况下,我在更新数据透视表数据时遇到一些问题。

情况是:我有两个表:产品产品类型。它们之间的关系是多对多。我的模型是

class Product extends Eloquent {
protected $table = 'products';
protected $primaryKey = 'prd_id';

public function tags() {
return $this->belongsToMany('Tag', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}

class Tag extends Eloquent {
protected $table = 'tags';
protected $primaryKey = 'tag_id';
public function products()
{
return $this->belongsToMany('Product', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}

在将数据插入数据透视表 prd_tags 时,我做了:

$product->tags()->attach($tag->tagID);

但是现在我想更新此数据透视表中的数据,将数据更新到数据透视表的最佳方法是什么。假设我想删除一些标签并向特定产品添加新标签。

最佳答案

老问题,但在 2013 年 11 月 13 日,updateExistingPivot 方法针对多对多关系公开。这还没有出现在官方文档中。

public void updateExistingPivot(mixed $id, array $attributes, bool $touch)

--更新表中现有的数据透视记录。

自 2014 年 2 月 21 日起,您必须包含所有三个参数。

就您而言,(如果您想更新数据透视字段“foo”)您可以这样做:

$product->tags()->updateExistingPivot($tag->tagID, array('foo' => 'value'), false);

或者,如果您想触及父时间戳,您可以将最后一个 bool 值 false 更改为 true。

拉取请求:

https://github.com/laravel/framework/pull/2711/files

关于many-to-many - 在多对多关系的情况下更新数据透视表 laravel4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15621279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com