雄辩查询:根据与其他模型的关系过滤结果

时间:2017-11-12 20:34:32

标签: laravel laravel-5 eloquent

所以我有两个表:postscategories。这是一种多对多关系:一个帖子有很多类别,一个类别属于很多帖子。 以下是描述其关系的模型:

Category.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $fillable = ['name', 'slug'];

    public function posts()
    {
        return $this->belongsToMany('App\Post');
    }
}

post.php中

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function categories()
    {
        return $this->belongsToMany('App\Category');
    }
}

我希望获得具有特定posts的所有categorytips

以下是我的尝试:

$tips = Category::where('name', 'Tips')->posts()->with('categories')->take(4)->get();

我不知道此查询中的无知程度,但老实说我希望它能够正常工作。它没有。

我会感激任何帮助。

1 个答案:

答案 0 :(得分:0)

它真的很简单:

$tipsCategory = Category::where('name', 'tips')
    ->get();

$posts = $tipsCategory->posts;