【发布时间】:2016-12-12 11:15:54
【问题描述】:
我在 Laravel 查询生成器中写出了这个查询,但是当我运行它时,它返回这个错误:Call to a member function join() on float
$avgYield= DairyCropYield::avg('moisture')
->join('dairy_crops','dairy_crops.id','=','dairy_crop_yields.dairy_crop_id')
->join('dairy_crop_varieties','dairy_crops.dairy_crop_variety_id','=','dairy_crop_varieties.id')
->where('dairy_crop_varieties.crop','=',$crop->crop)
->whereYear('harvested_at','=',Carbon::now()->year)
->get();
但是当我在 mySql 中编写相同的查询时,它会像预期的那样工作:
SELECT AVG(moisture) FROM dairy_crop_yields AS yield JOIN dairy_crops AS crop ON crop.id = yield.dairy_crop_id JOIN dairy_crop_varieties AS variety ON variety.id = crop.dairy_crop_variety_id WHERE variety.crop = 'corn' AND YEAR(harvested_at) = 2015
关于我在 Laravel 查询构建器中做得不对的任何想法/建议。 我确实想掌握并坚持使用 Laravel 的查询构建器。 谢谢。
【问题讨论】:
-
尝试将其转换为
->toSql(),使其查询字符串
标签: php mysql laravel eloquent