【发布时间】:2014-01-16 01:21:35
【问题描述】:
期望的输出:
Post
uid
comments
uid
author
username
likes
uid
username
likes
uid
user
username
author
uid
user
username
所以目前我拥有该帖子的所有 cmets、喜欢和作者。
但它们都只包含 UID。
这里:现在我想在 cmets、likes 和 author 上添加用户名信息,这样我就可以获得喜欢帖子和其他元素的用户的 USERNAME 或 FIRST_NAME。
分解它。
- 每个帖子都包含帖子详细信息、cmets、喜欢和作者
- 当前在 cmets 中是作者的用户数据(正确)
- 目前评论里面的userdata包含avatar_id(错了,我要头像链接)
- 目前likes里面是user_id(错了,我要user_data)
- 目前作者内部是用户数据,但只是头像的ID(错了,我想要user_avatars表中头像的链接
我的帖子模型。
/**
* Author of a post.
*
* @return Object
*/
public function author()
{
return $this->belongsTo('User', 'uid', 'uid');
}
/**
* Comments of a post.
*
* @return Object
*/
public function comments()
{
return $this->hasMany('Post', 'reply_to', 'pid')->with('author');
}
/**
* Likes of a post.
*
* @return Object
*/
public function likes()
{
return $this->hasMany('Like', 'pid', 'pid');
}
我的控制器
$post = Post::with('comments', 'likes', 'author')->where('jid', 2)->get();
return $post;
所以从技术上讲,Author() 也应该加入 user_avatars 和 files,因为 user_avatars 包含 File_ID 和 USER_ID,而 files 表包含 File_ID 和指向头像的链接。 怎么做?
另一方面:'调用未定义的方法 Illuminate\Database\Query\Builder::author()'
如果我这样做:
public function likes()
{
return $this->hasMany('Like', 'pid', 'pid')->with('author');
}
【问题讨论】:
标签: php mysql laravel eloquent