我正在尝试使用laravel 4进行评论和帖子系统,其中2种类型的“用户”可以发表评论。对于2类型的“用户”意味着我有一个表用户和一个表团队,我的期望是两者都可以对相反的帖子发表评论。让我们用我现在使用的逻辑:
架构表:
用户表
Table | Users
id - integer autoincrement
fullname - string 20
团队表
Table | Teams
id - integer autoincrement
fullname - string 50
帖子表
Table | Posts
id - integer autoincrement
text - text
id_poster - integer
type_id - integer // if is 1 the id_poster filed belongs to user else if 2 belongs to team
评论表
Table | Comments
id - integer autoincrement
id_post - integer
id_poster - integer
id_type - integer
text - text
现在让我们谈谈这些关系:
用户关系
Class User extends Eloquent {
protected $table = "users";
function posts() {
return $this->hasMany('Post','id_poster');
}
function comments() {
return $this->hasMany('Comment','id_poster');
}
}
团队关系
Class Team extends Eloquent {
protected = $table = "teams";
function posts() {
return $this->hasMany('Post','id_poster');
}
function comments() {
return $this->hasMany('Comment','id_poster');
}
}
帖子关系
Class Post extends Eloquent {
protected $table = "posts";
function users() {
$this->belongsTo('User','id_poster');
}
function teams() {
return $this->belongsTo('Team','id_poster');
}
function comments() {
return $this->hasMany('Comment','id_post');
}
}
评论关系
Class Comment extends Eloquent {
protected $table = "comments";
function posts() {
return $this->belongsTo('Post','id_post');
}
function teams() {
return $this->belongsTo('Team','id_poster');
}
}
通过这种关系,我可以获得关于单个类别的帖子和评论:
示例我为用户发帖和评论做结果
$posts = new Post;
$get_post = $posts->with('users','comments.users')->where('type_id','=',1)->get();
我可以显示
但不是
数据需要我的输出关于评论是: - id_poster - 全名 - id_type - 文字
简言之,我的问题是:
我必须改变什么以及为什么会出现“用户”的评论?