php - 如何正确完成此爆炸和比较查询?拉拉维尔 5.3

标签 php mysql laravel-5 query-builder

我正在尝试获取此标签字符串并迭代它以获取另一个表上相应标签的列:

1A-3,1-1,1-2,3-4,4-6,4-8,6-13,6-15,8-6,8-11,7A-4,7A-5 ,7A-6

检查: enter image description here

    $ministry = AgencyLogin::find(196);
            $prefs = $ministry->Ministry_Preferences;
            $tags = explode(',', $prefs);
            foreach ($tags as $tag) {
                $sub_categories[] = DB::table('descriptor')
                ->where('tag', $tag)
                ->select('subcategory', 'description')
                ->first();
            }
//dd($sub_categories);
return view('agencydash', compact('sub_categories'));

dd($prefs) 打印正确的字符串。 $sub_categories[] 永远不会转换为实际的数组,因此无法像数组一样进行解析,而且我在 Laravel 中的有限经验意味着我不知道如何将这样的查询转换为数组当前的事物是一个对象。

dd($sub_categories) 在我将其视为对象后,会打印一个似乎是随机的结果:

{#262 ▼
  +"subcategory": "SUPPORT ROLE"
  +"description": "Project Management"
}

我一直在稳步自学 Laravel 和 php,所以像这样的问题提出了更多问题,我现在还无法回答。 有人知道我错过了什么吗?

最佳答案

为什么要遍历 $tags 而不使用 whereIn 方法并获取相关行的整个集合?

$ministry = AgencyLogin::find(196);
        $prefs = $ministry->Ministry_Preferences;
        $tags = explode(',', $prefs);
        $sub_categories = DB::table('descriptor')
            ->whereIn('tag', $tags)
            ->get(['subcategory', 'description']);
//dd($sub_categories);
return view('agencydash', compact('sub_categories'));

Docs

关于php - 如何正确完成此爆炸和比较查询?拉拉维尔 5.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40413653/

相关文章:

php - Laravel Facebook-登录/丢失电子邮件

csv - 将带有非拉丁字符的 csv 转储到 mysql 表中

mysql - 如果双方的信息相同,我应该从连接的哪一边选择?

laravel-5 - Laravel - laracasts/PHP-Vars-To-Js-Transformer

javascript - 赠送带有激活码的小部件(网络应用程序)

php - 浮点乘法和评估问题

php - 删除重复链接

mysql从linux转储到windows

php - 创建一个可以访问我的模型的 Laravel 5.1 中间件

laravel-5 - Laravel 中的 json 数组分页