[英]Laravel get count from model relationship
我有这3个模型。
Author
|id|name|
Post
|id|author_id|
Likes
|id|post_id|
关系。
作者
public function post()
{
return $this->hasMany(Post::class, 'author_id', 'id');
}
邮政
public function author(){
return $this->belongsTo(Author::class, 'id', 'author_id');
}
public function likes(){
return $this->hasMany(Likes::class, 'post_id', 'id');
}
喜欢
public function post()
{
return $this->belongsTo(Post::class, 'id', 'post_id');
}
我的问题是,如何列出所有作者的所有帖子中的总点赞数。
使用 call $authors->posts->likes 会导致错误,因为posts 返回一个集合。
作者有很多帖子,帖子有很多赞。
要从Author模型中获得所有喜欢,您可以定义hasManyThrough()关系:
public function likes()
{
return $this->hasManyThrough(
'App\Likes', // Likes model
'App\Post', // Post model
'author_id', // Foreign key on posts table...
'post_id', // Foreign key on likes table...
'id', // Local key on authors table...
'id' // Local key on posts table...
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.