我最近開始使用Laravel4。在更新數據透視表時,我遇到了一些問題,以防萬一。更新數據透視表,以備多對多關係laravel4
的情況是: 我有兩個表:產品,ProductType。 它們之間的關係是多對多。 我的模型是
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);
但現在我想在這個透視表更新數據,什麼是更新數據的最佳方式到數據透視表。 比方說,我想刪除一些標籤並將新標籤添加到特定產品。
你看過的信息文檔?它是否有幫助... http://four.laravel.com/docs/eloquent#working-with-pivot-tables – 2013-04-11 12:24:01
@PhillSparks:是的,我已經閱讀了這份文件。有一種叫做sync的方法來做到這一點,它將分別採用id的數組和插入和刪除,但是如果我的數據透視表的屬性不是兩個表的id,那該怎麼辦?同步方法應該採用一組對象而不是整數數組。 – Sameer 2013-04-15 07:55:58
Eloquent提倡簡單的表設計,其中數據透視表具有用於引用行的ID列。雄辯不是爲迎合其他數據庫設計而設計的,因爲有更全面的ORM解決方案。 – 2013-04-15 08:36:17