微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在laravel中联合两个以上的表?

如何解决如何在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,];
    }
}

这是错误

enter image description here

解决方法

如果您想在 ->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 举报,一经查实,本站将立刻删除。