我有 3 table cart,pharmacy 和 cart_pharmacies
购物车表
cart_id | user_id | total_price | status | created_at | updated_at
药房表
pharmacy_id | name | address_id | created_at | updated_at
cart_pharmacies 表
cart_pharmacies_id | cart_id | pharmacy_id | created_at | updated_at
在购物车模式中我定义关系
public function pharmacy()
{
return $this->belongsToMany('App\Pharmacy','cart_pharmacies','cart_id','pharmacy_id');
}
在parmacy modal我定义
public function cart()
{
return $this->belongsToMany('App\Cart','cart_pharmacies','pharmacy_id','cart_id');
}
在 Controller 中我有 pharmacy_id 我正在尝试使用代码更新购物车状态
$pharmacy_id=$request->input('pharmacy_id');
$pharmacy= Pharmacy::findOrFail($pharmacy_id);
$pharmacy->cart()->update(['status'=>1]);
但它给我错误
SQLSTATE[23000]: Integrity constraint violation: 1052 Column
'updated_at' in field list is ambiguous (SQL: update `cart` inner join
`cart_pharmacies` on `cart`.`cart_id` = `cart_pharmacies`.`cart_id` set
`status` = 1,
`updated_at` = 2016-05-31 07:14:47 where `cart_pharmacies`.`pharmacy_id` = 5)
最佳答案
SQL 查询错误表示有多个名为“updated_at”的列(主表和相关表)并且无法决定更新哪个。这是一个错误,我认为没有办法用 Eloquent 解决,因为 updated_at 会自动添加到末尾,而无需指定表名。
关于php - updated_at 列含糊不清,同时用 Eloquent 方式更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37539275/