如何解决如何在laravel中联合两个以上的表?
我想在查询生成器 JSON 资源 Laravel 中合并表问题和选项。当我尝试这个时,我收到一个错误;我的代码有什么问题?
这是我的 CurriculumdisplayResource:
<?PHP
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\DB;
class CurriculumdisplayResource extends JsonResource
{
public function toArray($request)
{
$second = DB::table('questions')
->join('quizzes','quizzes.id','=','questions.quiz_id')
->select('questions.*')
->get();
$third = DB::table('choices')
->join('questions','questions.id','choices.question_id')
->select('choices.*')
->get();
return [
'id' => $this->id,'title_section' => json_decode($this->title_section),'learning_objective'=> json_decode($this->learning_objective),'content_detail' =>
DB::table('curriculums')
->join('content_texts','curriculums.id','content_texts.curriculum_id')
->join('content_files','content_files.curriculum_id')
->join('content_videos','content_videos.curriculum_id')
->join('quizzes','quizzes.curriculum_id')
->select('content_texts.title_text','content_texts.text_course','content_files.title_file','content_files.file_course','content_videos.title_video','content_videos.video_course','quizzes.title_quiz','quizzes.')
->union($second)
->union($third)
->get(),'parent_id' => $this->id,];
}
}
这是错误:
解决方法
如果您想在 ->get()
方法中使用它们,则不应在查询的末尾使用 union()
。
$second = DB::table('questions')
->join('quizzes','quizzes.id','=','questions.quiz_id')
->select('questions.*');
$third = DB::table('choices')
->join('questions','questions.id','choices.question_id')
->select('choices.*');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。