我想用拉拉雄辩的方法,当我得到一些数据。
我用的桌子
po_trading_details
- po_trading_id
- item_id
- price_id
- price
- qty
- description
- type [Liter, Kilo Liter]
- created_at
- updated_at
- deleted_at
so_trading
- customer_id
- date
- code
- sub_total
- tax_id
- total
- created_at
- updated at
- deleted_at
so_tradind_detail
- so_trading_id
- item_id
- price_id
- qty
- type [Liter, Kilo Liter]
- created_at
- updated at
- deleted_at我想得到这样一个条件的数据
if po_trading_details.type = "Kilo Liter","qty“* 1000,"qty”* 1)
I在cli中使用此命令,并且工作正常。
select *, IF (`type` = "Kilo Liter", `qty` * 1000, `qty` * 1) as final_qty from po_trading_details having final_qty < 1000;但是当我用我的雄辩时,这是一个错误
SQLSTATE42S22:列未找到:在“1054子句”中有1054个未知列“final_qty”(SQL: select * from
po_trading_details具有final_qty> 123)
这是密码:
...
$so = SoTrading::findOrFail($id);
$model = new PoTradingDetail();
$new_model = $model->query(DB::raw('IF (`type` = "Kilo Liter", `qty` * 1000, `qty` * 1) as final_qty'));
foreach ($so->so_trading_details as $so_trading_detail) {
$new_model->having('final_qty', '>', $so_trading_detail->qty);
}
$model = $new_model->get();
return $this->ResponseJsonData($model);
...任何人都能解决这个问题。
发布于 2022-08-10 06:20:44
问题已解决
相反,使用查询,使用select方法从雄辩
$new_model = $model->select(["*", DB::raw('IF (`type` = "KL", `qty` * 1000, `qty` * 1) as final_qty')]);这是因为当我使用最后一个查询时,if语句不会加载到该查询中。
https://stackoverflow.com/questions/73301395
复制相似问题