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

How to use laravel hasManyThrough to parse?

藏色散人
Release: 2022-01-26 11:35:13
forward
2609 people have browsed it

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
Copy after login

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');
Copy after login

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
Copy after login

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');
Copy after login
// 参数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');
Copy after login

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!

Related labels:
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template