laravel - 仅获取使用 with、Laravel 的 ID
问题描述
我想从 获取所有 ID with
,目前我获取所有数据(id
、、、name
等pivot
)
$teacher = Teacher::where('id', $id)->with(['subjects' => function($q) {
$q->select('id')->value('id');
}])->orderByDesc('id')->first();
我试过了:
$q->pluck('id')->all();
$q->pluck('id');
$q->get('id');
$q->value('id');
$q->pluck('id')->all();
在最终结果我只idee ids 数组[1, 2, 3]
。
解决方案
从相反的角度来看,这个查询很可能要容易得多。IE 如果您只在特定教师下的那些科目的 ID 之后,请从科目表中获取,而不是教师级别的子查询。
对于简单的关系,例如:
$subject_ids = Subject::where('teacher_id', $id)->pluck('id');
或者,如果它是一个完整的枢轴关系,您可以转到表本身,类似于:
$subject_ids = \DB::table('subject_teacher')->where('teacher_id', $id)->pluck('subject_id');
最后一个示例在您如何设置方面做了很多假设,但希望能让您了解如何使用更简单的查询来完成此操作。
HTH
推荐阅读
- ruby-on-rails - 活动管理导轨中的代码可重用性问题
- java - 在 Windows 上构建 maven 期间无法执行 .sh 文件(CreateProcess 错误=193,%1 不是有效的 Win32 应用程序)
- php - ckeditor 在创建帖子时工作正常,但在编辑帖子时丢失
- scala - 火花数与拍摄和长度
- log4j - 使用 Java +TestNG 或 Java + Log4j 配置 Reportportal
- frameworks - 物化:如何向输入字段提交按钮添加图标?
- django - 如何在 Django 中获取 Api Body 参数
- javascript - 使用 JavaScript 的成本计算器 - 高级
- javascript - 如何将 Actions 信息传递给组件、React + Redux?
- bash - bash if 语句没有按预期工作