为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel DB 失去连接(大概)

Laravel DB 失去连接(大概)

PHP
跃然一笑 2022-05-27 13:22:00
我有一个循环,我从数据库中获取项目,目前我的数组中有 314 个 id,我得到这样的项目。$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']都有$santized_needs['sub_category']314 个 ID。但是当它运行时它会抛出500 internal server error但是当我将查询注释掉并用字符串替换它们时它可以工作。我的猜测是数据库正在限制大量查询。laravel.log浏览器中的网络选项卡和网络选项卡都没有错误消息。有什么办法可以禁用对数据库或 laravel 的限制?更新:这里有一些$sanitized_needs数组示例。array:2 [  "standard" => array:312 [    0 => "C216114B-8751-3874-9154-FC22679569E0"    1 => "871E5F62-0E1B-3338-969C-2DC4604C8722"    2 => "B0161059-E9F6-376E-8BB1-B4BF1B10C30F"    3 => "D1380FB6-37A8-3B3B-B877-A5AF21D9385F"    4 => "D1380FB6-37A8-3B3B-B877-A5AF21D9385F"    5 => "676038A6-13D0-32CC-BAD7-A7DA9CFB28EA"    6 => "D1380FB6-37A8-3B3B-B877-A5AF21D9385F"    7 => "C216114B-8751-3874-9154-FC22679569E0"    8 => "676038A6-13D0-32CC-BAD7-A7DA9CFB28EA"    9 => "676038A6-13D0-32CC-BAD7-A7DA9CFB28EA"    10 => "C216114B-8751-3874-9154-FC22679569E0"    ...  ]
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

尝试了所有我可以最终改变这部分代码的方法


$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;

                    }

                }

            }

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


查看完整回答
反对 回复 2022-05-27
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号