php - updated_at 列含糊不清,同时用 Eloquent 方式更新

标签 php mysql eloquent laravel-5 ambiguous

我有 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/

相关文章:

mysql将多行转换为单行中的列

php - 如果记录存在,Laravel with() 关系

php - 如何使用 .load() 根据引用 URL 加载特定内容 ID

php - 学说问题;如果将项目添加到关系,则无法保留实体

php - 无法使用 codeigniter 将值插入数据库

php - Laravel Eloquent - 如何加入表格

laravel - 使用Eloquent仅获取联接表上的最新值

php - 如何在 php 中使用 sudo 以 root 用户身份访问服务器

bat 文件中的 Mysql 命令

mysql 检查用户是否有超过 x 个事务或来自不同表的超过 x 的评级,并使用 where OR