【发布时间】:2018-12-14 11:12:03
【问题描述】:
我尝试使用 Model::with 添加附加列
$pitchChech = Pitch::with(['prices'=>function ($query){
$query->select('*',\DB::Raw("(select sum(HOUR(TIMEDIFF(valid_to ,valid_from))) from pitch_price as xpitch_price where pitch_id = pitch_price.pitch_id ) as x "))
->whereRaw(" x < ?",[24]);
}])->get();
dd($pitchChech);
我有这个输出
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'x' in 'where clause'
我不明白我使用 laravel 5.1 有什么问题,但我认为 ut 没有问题
【问题讨论】:
-
将
->get()更改为->toSql()并显示结果 -
当我把它改成Sql时它只是调用Pitch模型
-
with()用于加载关系。不适用于自定义 SQL。您可能想查看addSelect、selectRaw、join等。 -
我 traid
$pitchChech = Pitch::whereHas('prices',function ($query){ $query->select("*",\DB::Raw("(select sum(HOUR(TIMEDIFF(valid_to ,valid_from))) from pitch_price as xpitch_price where pitch_id = pitch_price.pitch_id ) as total_h")) ->where("total_h","<", "24"); })->get();仍然给我同样的错误 -
@AJamal,我们重新开始怎么样,然后您发布您的架构、模型并概述您要提取的内容?
标签: mysql laravel laravel-5.1 laravel-query-builder