优化Laravel查询

时间:2018-11-24 21:56:27

标签: php laravel

最近为一个API项目选择了Laravel并完成了所有工作,并且Ive一直在将从php函数编写的API与连接的SQL字符串迁移到Laravel查询生成器中,除了一部分之外,一切都很好。

我有一个库存表和一个要素表,所以我在库存模型上定义了一个hasMany与要素的关系,当我将要素的字符串数组传递给查询时,我需要遍历每个功能,然后取回具有这些功能的所有库存物品。

使用whereIn并不是我所需要的,因为那样会使我的库存只有一种功能。如果我使用标准的where,那么一旦添加了多个功能,就会给我0个结果。

我已经用下面的代码实现了我想要的,但是它执行起来非常慢,但是我不确定有更好的方法来获得相同的结果:

foreach($value as $v){
    $builder->whereHas('features', function($query) use ($v) {
        $query->where('code', $v);
    );
}

1 个答案:

答案 0 :(得分:1)

使用查询生成器而不是Eloquent来优化查询... 例如:

session_start();
$_SESSION['product_number'.$base64 ] = true;

文档:https://laravel.com/docs/5.7/queries