Laravel 5.5 Eloquent groupBy on ManyToMany Relationship
For example, I need take tags
name and its not duplicate each categories
here my model
Post.php
class Posts extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function tags() : belongsToMany
{
return $this->belongsToMany(Tag::class, 'post_tag', 'post_id', 'tag_id');
}
}
Category.php
class Category extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
Tag.php
class Tag extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
and here what I do.
Category::with(['posts.tags' => function($query){
$query->groupBy('name'); // i need show tags name and group it, so its will not duplcate
}])->get();
for $query->groupBy('name');
name is tags
name.
example
Categpry A
|__Title A
|__Tag A
|__Tag B
|__Tag C
|__Tag D
|__Title B
|__Tag A
|__Tag D
|__Tag E
the result must be Tag A, Tag B, Tag C, Tag D, Tag E
i don't have an idea how to right now, any have a solution?...
thank you!
php laravel
add a comment |
For example, I need take tags
name and its not duplicate each categories
here my model
Post.php
class Posts extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function tags() : belongsToMany
{
return $this->belongsToMany(Tag::class, 'post_tag', 'post_id', 'tag_id');
}
}
Category.php
class Category extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
Tag.php
class Tag extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
and here what I do.
Category::with(['posts.tags' => function($query){
$query->groupBy('name'); // i need show tags name and group it, so its will not duplcate
}])->get();
for $query->groupBy('name');
name is tags
name.
example
Categpry A
|__Title A
|__Tag A
|__Tag B
|__Tag C
|__Tag D
|__Title B
|__Tag A
|__Tag D
|__Tag E
the result must be Tag A, Tag B, Tag C, Tag D, Tag E
i don't have an idea how to right now, any have a solution?...
thank you!
php laravel
1
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
errortagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` aspivot_post_id
,post_category
.category_id
aspivot_category_id
,post_category
.created_at
aspivot_created_at
,post_category
.updated_at
aspivot_updated_at
......'`
– Dicky Raambo
Nov 21 '18 at 3:55
TheTitle A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.
– Jared Chu
Nov 21 '18 at 4:01
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15
add a comment |
For example, I need take tags
name and its not duplicate each categories
here my model
Post.php
class Posts extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function tags() : belongsToMany
{
return $this->belongsToMany(Tag::class, 'post_tag', 'post_id', 'tag_id');
}
}
Category.php
class Category extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
Tag.php
class Tag extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
and here what I do.
Category::with(['posts.tags' => function($query){
$query->groupBy('name'); // i need show tags name and group it, so its will not duplcate
}])->get();
for $query->groupBy('name');
name is tags
name.
example
Categpry A
|__Title A
|__Tag A
|__Tag B
|__Tag C
|__Tag D
|__Title B
|__Tag A
|__Tag D
|__Tag E
the result must be Tag A, Tag B, Tag C, Tag D, Tag E
i don't have an idea how to right now, any have a solution?...
thank you!
php laravel
For example, I need take tags
name and its not duplicate each categories
here my model
Post.php
class Posts extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function tags() : belongsToMany
{
return $this->belongsToMany(Tag::class, 'post_tag', 'post_id', 'tag_id');
}
}
Category.php
class Category extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
Tag.php
class Tag extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
and here what I do.
Category::with(['posts.tags' => function($query){
$query->groupBy('name'); // i need show tags name and group it, so its will not duplcate
}])->get();
for $query->groupBy('name');
name is tags
name.
example
Categpry A
|__Title A
|__Tag A
|__Tag B
|__Tag C
|__Tag D
|__Title B
|__Tag A
|__Tag D
|__Tag E
the result must be Tag A, Tag B, Tag C, Tag D, Tag E
i don't have an idea how to right now, any have a solution?...
thank you!
php laravel
php laravel
asked Nov 21 '18 at 3:43


Dicky RaamboDicky Raambo
14811
14811
1
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
errortagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` aspivot_post_id
,post_category
.category_id
aspivot_category_id
,post_category
.created_at
aspivot_created_at
,post_category
.updated_at
aspivot_updated_at
......'`
– Dicky Raambo
Nov 21 '18 at 3:55
TheTitle A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.
– Jared Chu
Nov 21 '18 at 4:01
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15
add a comment |
1
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
errortagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` aspivot_post_id
,post_category
.category_id
aspivot_category_id
,post_category
.created_at
aspivot_created_at
,post_category
.updated_at
aspivot_updated_at
......'`
– Dicky Raambo
Nov 21 '18 at 3:55
TheTitle A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.
– Jared Chu
Nov 21 '18 at 4:01
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15
1
1
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
error
tagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` as pivot_post_id
, post_category
.category_id
as pivot_category_id
, post_category
.created_at
as pivot_created_at
, post_category
.updated_at
as pivot_updated_at
......'`– Dicky Raambo
Nov 21 '18 at 3:55
error
tagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` as pivot_post_id
, post_category
.category_id
as pivot_category_id
, post_category
.created_at
as pivot_created_at
, post_category
.updated_at
as pivot_updated_at
......'`– Dicky Raambo
Nov 21 '18 at 3:55
The
Title A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.– Jared Chu
Nov 21 '18 at 4:01
The
Title A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.– Jared Chu
Nov 21 '18 at 4:01
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15
add a comment |
0
active
oldest
votes
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%2f53404960%2flaravel-5-5-eloquent-groupby-on-manytomany-relationship%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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.
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%2f53404960%2flaravel-5-5-eloquent-groupby-on-manytomany-relationship%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
1
What is your current result?
– Jared Chu
Nov 21 '18 at 3:50
error
tagsIlluminate/Database/QueryException with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'blog.categories.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
categories.*,
post_tag.
post_id` aspivot_post_id
,post_category
.category_id
aspivot_category_id
,post_category
.created_at
aspivot_created_at
,post_category
.updated_at
aspivot_updated_at
......'`– Dicky Raambo
Nov 21 '18 at 3:55
The
Title A
is post title, right? I think you should get the data and group them by PHP code instead of SQL query.– Jared Chu
Nov 21 '18 at 4:01
yes it's post title
– Dicky Raambo
Nov 21 '18 at 4:15