3

投稿とトピックに対して多対多のlaravel関係があります:

  • 投稿は多くのトピックに属しています
  • トピックは多数の投稿に属します

特定のトピックからid > 10の投稿を取得したい

次のコードは、特定のトピックからすべての投稿を取得します。

$topic = Topic::where('id',$topic_id)->get()->first();
$posts= $topic->post;

id > 10の投稿を取得する方法は ?

モデル:

class Topic extends Eloquent{

    public function post()
    {
     return $this->belongsToMany('post');
        }
    }

class Post extends Eloquent{

    public function topic()
    {
        return $this->belongsToMany('Topic');
    }       
}
4

3 に答える 3

4

このような:

Topic::with(array('posts' => function($q)
{
    $q->where('id', '>', 10);

}))->where('id', $id)->first();
于 2013-11-02T19:25:52.127 に答える
4

あなたはこのようにするべきです

$topic = Topic::find($topic_id);   
$posts= $topic->posts()->where('id','>',10)->get();  

また

$posts = Topic::find($topic_id)->posts()->where('id','>',10)->get(); 

この助けを願っています

于 2015-12-25T04:59:01.197 に答える
2

Where条項を適用したい場合belongsToMany

条件はこちら

$permissions = Role::with('getRolePermissions')->where('id', '=', Auth::guard('admin')->user()->id)->get()->toArray();

この URLgetRolePermissionsにはモデル関数があり、その内部では多対多の関係を使用しています

public function getRolePermissions() {
        return $this->belongsToMany('App\Permission', 'permission_role');        

    }
于 2016-07-30T05:49:27.220 に答える