我对帖子和主题有多对多的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');
}
}
答案 0 :(得分:4)
像这样:
Topic::with(array('posts' => function($q)
{
$q->where('id', '>', 10);
}))->where('id', $id)->first();
答案 1 :(得分:2)
如果您要将Where
条款应用于belongsToMany
这是条件
$permissions = Role::with('getRolePermissions')->where('id', '=', Auth::guard('admin')->user()->id)->get()->toArray();
在此网址中getRolePermissions
是模型函数,在其中我使用了多对多关系
public function getRolePermissions() {
return $this->belongsToMany('App\Permission', 'permission_role');
}
答案 2 :(得分:1)
你应该这样做
$topic = Topic::find($topic_id);
$posts= $topic->posts()->where('id','>',10)->get();
或
$posts = Topic::find($topic_id)->posts()->where('id','>',10)->get();
希望这个帮助