Laravel DB失去连接(大概)

时间:2019-11-27 08:23:45

标签: php mysql laravel

我有一个循环,我从数据库中获取项目,目前我的数组中有314个id,我得到的是这样的项目。

ServletContextInitializer

我知道我可以使用$s_standards = []; $s_sub_category = []; foreach ($sanitized_needs['standard'] as $skey => $standard) { $sname = DB::table('lesson_observation_teacher_standards')->where('id', $standard)->first()->name; $s_standards[] = $sname; foreach ($sanitized_needs['sub_category'] as $key => $substandard) { $name = DB::table('lesson_observation_teacher_standard_categories')->where('id', $substandard)->first()->name; if ($key == $skey) { $s_sub_category[$sname][] = $name; } } } ,但我需要使用重复项来计算类别。

WhereIn$santized_needs['standard']都有314个ID。但是,当它运行时,它会抛出$santized_needs['sub_category'],但是当我注释掉查询并将其替换为字符串时,它将起作用。我的猜测是数据库正在限制大量查询。在浏览器的500 internal server error和“网络”标签中都没有错误消息。

有什么方法可以禁用对数据库或laravel的限制吗?

更新:以下是laravel.log数组的一些示例。

$sanitized_needs

1 个答案:

答案 0 :(得分:0)

尝试了一切之后,我最终像这样更改了这部分代码

$s_standards = [];
$s_sub_category = [];
$all_subs = DB::table('lesson_observation_teacher_standard_categories')->pluck('name','id')->toArray();

            foreach ($sanitized_needs['standard'] as $skey => $standard) {
                $sname = DB::table('lesson_observation_teacher_standards')->where('id', $standard)->first()->name;
                $s_standards[] = $sname;
                foreach ($sanitized_needs['sub_category'] as $key => $substandard) {
                    $name = $all_subs[$substandard];
                    if ($key == $skey) {
                        $s_sub_category[$sname][] = $name;
                    }
                }
            }

现在,我只是预加载类别并在数组中搜索它们。

现在可以正常使用