how to get objects from relation of relation in laravel
I have 3 model: Course,group,student
I want to give games from Course with 2 relations.
for ex: I want students of Course 1 (id=1)
The Course has Many group(5,6,8) and each group have One(36,38) or Many(35,37) students
How to get all students of Course with relations and eloquent
laravel laravel-5 eloquent relationship eloquent--relationship
add a comment |
I have 3 model: Course,group,student
I want to give games from Course with 2 relations.
for ex: I want students of Course 1 (id=1)
The Course has Many group(5,6,8) and each group have One(36,38) or Many(35,37) students
How to get all students of Course with relations and eloquent
laravel laravel-5 eloquent relationship eloquent--relationship
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09
add a comment |
I have 3 model: Course,group,student
I want to give games from Course with 2 relations.
for ex: I want students of Course 1 (id=1)
The Course has Many group(5,6,8) and each group have One(36,38) or Many(35,37) students
How to get all students of Course with relations and eloquent
laravel laravel-5 eloquent relationship eloquent--relationship
I have 3 model: Course,group,student
I want to give games from Course with 2 relations.
for ex: I want students of Course 1 (id=1)
The Course has Many group(5,6,8) and each group have One(36,38) or Many(35,37) students
How to get all students of Course with relations and eloquent
laravel laravel-5 eloquent relationship eloquent--relationship
laravel laravel-5 eloquent relationship eloquent--relationship
edited Nov 21 '18 at 15:02
asked Nov 21 '18 at 7:14
mohammad Hosseini
42
42
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09
add a comment |
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09
add a comment |
2 Answers
2
active
oldest
votes
You can use hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
The "has-many-through" relationship provides a convenient shortcut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model. In this example, you could easily gather all blog posts for a given country.
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
add a comment |
If you need only games:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
If you need tournament with games, Anar's option is better.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406971%2fhow-to-get-objects-from-relation-of-relation-in-laravel%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
The "has-many-through" relationship provides a convenient shortcut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model. In this example, you could easily gather all blog posts for a given country.
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
add a comment |
You can use hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
The "has-many-through" relationship provides a convenient shortcut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model. In this example, you could easily gather all blog posts for a given country.
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
add a comment |
You can use hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
The "has-many-through" relationship provides a convenient shortcut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model. In this example, you could easily gather all blog posts for a given country.
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
You can use hasManyThrough
public function games()
{
return $this->hasManyThrough(Tournament::class, Group::class);
}
The "has-many-through" relationship provides a convenient shortcut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model. In this example, you could easily gather all blog posts for a given country.
https://laravel.com/docs/5.7/eloquent-relationships#has-many-through
answered Nov 21 '18 at 7:27
Anar Bayramov
4,26942542
4,26942542
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
add a comment |
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
Nice...in this case we can't use where clauses for middle relationship (here:group)?...for ex: get games from group where round=4?
– mohammad Hosseini
Nov 21 '18 at 8:04
add a comment |
If you need only games:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
If you need tournament with games, Anar's option is better.
add a comment |
If you need only games:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
If you need tournament with games, Anar's option is better.
add a comment |
If you need only games:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
If you need tournament with games, Anar's option is better.
If you need only games:
$games = Game::with(['some_relation_name', 'some_relation_name_2'])
->whereHas('group', function($query) {
$query->whereHas('tournament', function($query) {
$query->where('id', 1)
});
})
->get();
If you need tournament with games, Anar's option is better.
edited Nov 21 '18 at 8:13
answered Nov 21 '18 at 7:29
IndianCoding
88519
88519
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406971%2fhow-to-get-objects-from-relation-of-relation-in-laravel%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Hello and welcome to StackOverflow. Please take some time to read the help page, especially the sections named "What topics can I ask about here?" and "What types of questions should I avoid asking?". And more importantly, please read the Stack Overflow question checklist. You might also want to learn about Minimal, Complete, and Verifiable Examples.
– Dang Nguyen
Dec 15 '18 at 1:09