找到单个帖子,然后获取所有类别和类别名称Laravel

时间:2017-05-15 17:14:49

标签: laravel laravel-5 eloquent laravel-eloquent

我有三张桌子

发布(id,title,image) Post_categories(id,post_id,category_id) 类别(标识,标题)

我是laravel的新手。我正在尝试获取单个帖子以及与该帖子相关的所有类别。我成功地做到了这一点,但现在我想将这些类别的id与原始类别表进行匹配,以获取每个类别名称。

到目前为止,这就是我发布帖子及其所有类别

控制器

public function edit_post($id) {

    $postID = decrypt($id);
    if(!is_numeric($postID) or empty($postID) or strlen($postID) < 1)
       return redirect('/user-panel/posts');

    $post['categories'] = Post::findOrfail($postID) -> categoriesRelatedPost;
    $post['post'] = Post::findOrfail($postID);
    return view('dashboard.edit_post') -> with($post);

}

模型

public function categoriesRelatedPost() {
    return $this -> hasMany('App\Post_Category');
}

我现在唯一想要的是将那些 category_id 与类别表和提取类别名称相匹配。请帮忙

2 个答案:

答案 0 :(得分:0)

我相信您应该能够在Post模型中执行以下操作:

public function categories()
{
    return $this->belongsToMany('App\Category', 'post_categories');
}

如果这不是一个选项,您可以Post_CategoryCategory建立关系并执行Post::findOrfail($postID)->categoriesRelatedPost->category;

答案 1 :(得分:0)

结帐this laracast视频,它完美地解释了这个概念,并会帮助你。