首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel雄辩使用if语句,然后使用雄辩有方法返回- SQLSTATE[42S22]:列未找到: 1054列未知

laravel雄辩使用if语句,然后使用雄辩有方法返回- SQLSTATE[42S22]:列未找到: 1054列未知
EN

Stack Overflow用户
提问于 2022-08-10 06:07:33
回答 1查看 26关注 0票数 0

我想用拉拉雄辩的方法,当我得到一些数据。

我用的桌子

代码语言:javascript
复制
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中使用此命令,并且工作正常。

代码语言:javascript
复制
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)

这是密码:

代码语言:javascript
复制
...
        $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);
...

任何人都能解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 06:20:44

问题已解决

相反,使用查询,使用select方法从雄辩

代码语言:javascript
复制
$new_model = $model->select(["*", DB::raw('IF (`type` = "KL", `qty` * 1000, `qty` * 1) as final_qty')]);

这是因为当我使用最后一个查询时,if语句不会加载到该查询中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73301395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档