duanbei1903 2018-12-11 14:22
浏览 18

Eloquent - 由于列转换类型,通过关系删除行失败。 如何强制施放类型?

I have tables as follows:

deliveries

- id (auto increment ID)
- supplier_name (string)
- delivery_date (datetime)
- ...

stock_movements

- id (auto increment ID)
- entity_type (string)
- entity_id (string) //This can hold a UUID or ID.
- qty (int)
- ...

Relationship

A delivery hasMany stock movements with deliveries : id being linked to stock_movements : entity_id

Problem

Calling:

$delivery->stockMovements()->delete();

Errors:

SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: '808498e7-a393-42f1-ab23-6ee89eb7040a' (SQL: delete from `stock_movements` where `stock_movements`.`entity_id` = 10000005 and `stock_movements`.`entity_id` is not null)

The raw SQL query is using the delivery ID as in integer but I think this fails as I need it to be a string, due to the cast type of the stock_movements entity_id.

Work Around

For now, I can get this to work by calling the delete in a loop.

$delivery->stockMovements()->each(function (StockMovement $sm){
     $sm->delete();
});

Any ideas why doing it in a loop works fine while calling delete on all records at once fails?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示
    • ¥15 求三国群英传pl国战时间的修改方法
    • ¥15 matlab代码代写,需写出详细代码,代价私
    • ¥15 ROS系统搭建请教(跨境电商用途)
    • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。