0

您好,我有关系的 Post 模型:

public function category()
{
    return $this->belongsTo(category::class);
}

我需要在每个类别的标签上显示帖子。为此,我需要使用 groupBy。当我这样做时:

$posts = Post::with('category')->groupBy('category.title')->get();

我得到错误:

Column not found: 1054 Unknown column 'category.title'.

为什么?如何使用类别标题键返回我的帖子?

对于多语言我使用这个包:https ://github.com/spatie/laravel-translatable

4

2 回答 2

1

试试Collection 的 group-by方法:

$posts = Post::with('category')->get()->groupBy('category.title')->all();

您可以传递一个回调来返回您希望作为分组键的值(正如您提到的,您正在使用 laravel-translatable 包):

$posts = Post::with('category')->get()->groupBy(function ($post, $key) {
    return $post->category->getTranslation('title', 'fr');
})->all();
于 2019-12-29T16:40:01.247 回答
0

你可以使用这样的东西:

$posts = Post::all()->groupBy('category_id')->get();

然后在刀片文件中,您可以 foreach 选项卡并按 category_id 查找名称

于 2019-12-29T16:42:46.810 回答