【发布时间】:2014-01-03 01:56:53
【问题描述】:
我正在将我现有的 twitter 克隆玩具项目转换为 Laravel 4。我之前使用过 codeigniter 框架,而 Eloquent ORM 是我接触过的第一个 ORM。
所以我对如何进行一些提前查询感到困惑,
以下查询是获取由users 创建的所有posts,而current_user 正在跟踪这些posts。这个存储过程 sn-p 工作正常。
BEGIN
SELECT
tbl_users.id as user_id,
tbl_users.display_name,
tbl_users.username,
tbl_posts.id as post_id,
tbl_posts.post_text,
tbl_posts.`timestamp`
FROM tbl_posts , tbl_users
WHERE tbl_posts.user_id IN (
SELECT tbl_followers.destination_user_id FROM tbl_followers
WHERE tbl_followers.source_user_id = xSource_user_id
)
AND tbl_posts.user_id = tbl_users.id
ORDER BY tbl_posts.id DESC
LIMIT xLimit;
END
表结构如下:
users : (id)
posts : (id,src_user_id [FK], post_text )
followers : (id , dest_user_id [FK] , src_user_id [FK])
我最好的猜测是:
Post::where('user_id', 'IN' , Follower::where('from_user_id','=','1'))->toSql();
我在用户模型中添加了以下关系
public function posts()
{
return $this->hasMany('Post');
}
public function followers()
{
return $this->hasMany('Follower');
}
【问题讨论】:
标签: php mysql laravel laravel-4 eloquent