Home >PHP Framework >Laravel >How to use laravel hasManyThrough to parse?

How to use laravel hasManyThrough to parse?

藏色散人
藏色散人forward
2022-01-22 09:14:452614browse

The following tutorial column from Laravel will introduce you to the usage and parameters of laravel hasManyThrough. I hope it will be helpful to you!

The first case, I call it conductive association table (simple mode)

There are many users in the country, and the users have many posts

countries
    id - integer
    name - string

users
    id - integer
    country_id - integer
    name - string

posts
    id - integer
    user_id - integer
    title - string

How to query all posts in a certain country?

countries is this table, posts is the target table to be output, and users is the intermediate table

return $this->hasManyThrough('App\Post', 'App\User', 'country_id', 'user_id');

The second case is the intermediate table (pure intermediate table)

exam_paper(试卷表)id
nameexam_paper_question(试卷与试题中间表)id
exam_paper_id
question_idexam_question(试题表)id
name

We want to query the question through the id of exam_paper

return $this->hasManyThrough('exam_question', 'exam_paper_question', 'exam_paper_id', 'id','id','question_id');
// 参数1 目标表类名
exam_question,
// 参数2 枢纽表类名
exam_paper_question,
// 参数3 枢纽表中和当前表关联的字段名
'exam_paper_question.exam_paper_id',
// 参数4 目标表和枢纽表关联的字段名
'exam_question.id',
// 参数5 当前表中和枢纽表关联的字段名
'exam_paper.id',
// 参数6 枢纽表和目标表关联的字段名
'exam_paper_question.question_id');

If the current table is marked as A, the target table is marked as B, the intermediate table is marked as C, and the 6 parameters are marked as (B, C, CA, BC, AC, CB)

Recommended learning: "laravel video tutorial"

The above is the detailed content of How to use laravel hasManyThrough to parse?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete