Foreign Key query using Query Builder in Laravel?
I am wondering if it is possible or not to reference a foreign key to a table using the Query Builder instead of using Eloquent relationships.
I am looking at Laravel Documentation where we can create foreign key
Schema::table('posts', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
But I don't see in query builder if it is possible to just use the foreign key or references to get all the posts from a user
Do I have to use Eloquent relationships?
Thanks in advance for any help.
php sql database laravel
add a comment |
I am wondering if it is possible or not to reference a foreign key to a table using the Query Builder instead of using Eloquent relationships.
I am looking at Laravel Documentation where we can create foreign key
Schema::table('posts', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
But I don't see in query builder if it is possible to just use the foreign key or references to get all the posts from a user
Do I have to use Eloquent relationships?
Thanks in advance for any help.
php sql database laravel
add a comment |
I am wondering if it is possible or not to reference a foreign key to a table using the Query Builder instead of using Eloquent relationships.
I am looking at Laravel Documentation where we can create foreign key
Schema::table('posts', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
But I don't see in query builder if it is possible to just use the foreign key or references to get all the posts from a user
Do I have to use Eloquent relationships?
Thanks in advance for any help.
php sql database laravel
I am wondering if it is possible or not to reference a foreign key to a table using the Query Builder instead of using Eloquent relationships.
I am looking at Laravel Documentation where we can create foreign key
Schema::table('posts', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
But I don't see in query builder if it is possible to just use the foreign key or references to get all the posts from a user
Do I have to use Eloquent relationships?
Thanks in advance for any help.
php sql database laravel
php sql database laravel
edited Nov 23 at 6:08
P. Ellul
411314
411314
asked Nov 23 at 2:40
Tsuna
6021820
6021820
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Use join to query for relations:
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.*')
->get();
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
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%2f53440041%2fforeign-key-query-using-query-builder-in-laravel%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Use join to query for relations:
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.*')
->get();
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
add a comment |
Use join to query for relations:
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.*')
->get();
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
add a comment |
Use join to query for relations:
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.*')
->get();
Use join to query for relations:
$users = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.*')
->get();
answered Nov 23 at 3:24
DigitalDrifter
7,2122423
7,2122423
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
add a comment |
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as
{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
Thanks, this works fine but this would give an array of user info + post's extra fields each object in the array would include user info which is quite duplicated. Is there a way to query it so it would give a return of user info with a field including array of post objects such as
{'name': 'hello', 'posts' : [{'title': 'title', 'comments': 'comments'}, {'title': 'title2', 'comments': 'comments2'}]}
– Tsuna
Nov 24 at 2:44
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
What I posted is a very basic use of a join clause, to further refine / structure the result set, you'll need to use additional constraints and/or clauses, such as groupBy, Sub-query joins, pivots, etc. It all very much depends on your database design and goals.
– DigitalDrifter
Nov 24 at 3:16
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
alright thx thx, I will give those two a try
– Tsuna
Nov 24 at 5:10
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%2f53440041%2fforeign-key-query-using-query-builder-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