php - 在这个 laravel 查询中返回每个问题的第一个问题的选项
问题描述
此 laravel 查询中每个问题返回的第一个问题的选项。
$questions = Question::with('option')
->join('categories', function($join) use ($category) {
$join->on('categories.id','=','questions.category_id');
$join->where('categories.title', '=', $category);
})
->inRandomOrder(5)->get();
问题类。
public function option()
{
return $this->hasMany(Option::class);
}
选项类。
public function question()
{
return $this->belongsTo(Question::class);
}
解决方案
您的查询选择所有列:select * from questions join categories ...
因此,这些categories
列会覆盖questions
具有相同名称的列。
您必须限制选定的列:
$questions = Question::with('option')
->join('categories', function($join) use ($category) {
$join->on('categories.id','=','questions.category_id');
$join->where('categories.title', '=', $category);
})
->inRandomOrder(5)
->get(['questions.*']);
或使用whereHas()
:
$questions = Question::with('option')
->whereHas('categories', function($query) use($category) {
$query->where('title', '=', $category);
})
->inRandomOrder(5)
->get();
推荐阅读
- wordpress - 使用 WordPress 和 ACF 实现可重复内容的最佳方法是什么?
- javascript - 如何处理 Jquery 自定义函数未定义的场景?
- c# - AzureFunction 从表中读取
- python - 类型错误:'在
' 需要字符串作为左操作数而不是 int - sql-server - 空间结果选项卡窗口在 Microsoft Visual Studio 中不可用
- python - 从纸浆到 GEKKO:约束的语法映射,目标函数
- javascript - 有没有办法使用 php 循环遍历 html 表?
- python - 正确管理 Reshape 以从以前的 CNN 构建 RNN
- amazon-web-services - 从 create_job 启用 AWS Glue 连续日志记录
- regex - 通过正则表达式查找文本并在其后添加新文本