如何使用添加的列作为查询正确更新数据透视表?
Posted
技术标签:
【中文标题】如何使用添加的列作为查询正确更新数据透视表?【英文标题】:How to Properly Update Pivot table using added column as query? 【发布时间】:2014-08-30 08:38:40 【问题描述】:我有这个包含
的数据透视表imei状态item_id
这是我的代码
$update = Item::find($item_id)->workArea()->wherePivot('imei', '=', 3)->first();
$update->pivot->status = 'Sold';
$update->pivot->save();
Before the function execute:
IMEI STATUS ITEM-ID
3 Available 3
5 Available 3
Result:
IMEI STATUS ITEM-ID
3 Sold 3
3 Sold 3
What I need:
IMEI STATUS ITEM-ID
3 Sold 3
5 Available 3
这是我的关系
public function workArea()
return $this->belongsToMany('WorkArea','item_work-area','item_id','work-area_id')->withPivot('imei','status');
这是过去与其他工匠的对话 http://laravel.io/forum/07-08-2014-proper-chaining-for-my-pivot-table-to-execute-pivot-update
【问题讨论】:
【参考方案1】:这是当前版本 4.1 的错误
我所做的是进行原始查询而不是雄辩的 ORM,
DB::table('item_work-area')
->where('imei', 11)
->update(array('status' => 'Sold'));
希望对那些需要使用添加的列作为参考来更新数据透视表的人有所帮助。
【讨论】:
啊!这么长时间以来我一直在尝试这样做,这是一个错误!谢谢 Taylor 自己说的 :)以上是关于如何使用添加的列作为查询正确更新数据透视表?的主要内容,如果未能解决你的问题,请参考以下文章