Php 如何在Laravel 4雄辩的ORM中使用或嵌套问题
我正在将我现有的twitter克隆玩具项目转换为Laravel4。我以前使用过codeigniter框架,雄辩的ORM是我接触过的第一个ORM。 所以我对如何做一些预先查询感到困惑, 下面的查询是获取所有Php 如何在Laravel 4雄辩的ORM中使用或嵌套问题,php,mysql,laravel,laravel-4,eloquent,Php,Mysql,Laravel,Laravel 4,Eloquent,我正在将我现有的twitter克隆玩具项目转换为Laravel4。我以前使用过codeigniter框架,雄辩的ORM是我接触过的第一个ORM。 所以我对如何做一些预先查询感到困惑, 下面的查询是获取所有帖子,这些帖子是由用户创建的,后面跟着当前用户。此存储过程片段工作正常 BEGIN SELECT tbl_users.id as user_id, tbl_users.display_name, tbl_users.usernam
帖子
,这些帖子是由用户创建的,后面跟着当前用户
。此存储过程片段工作正常
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
表结构如下:
用户
:(id)
posts
:(id,src\u user\u id[FK],post\u text)
followers
:(id,dest\u user\u id[FK],src\u user\u 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');
}
您可以通过以下方式使用:
Post::whereIn('user_id', yourArray)->get();
但是我建议您看看雄辩的手册,特别是关系部分,您需要使用lists()以数组形式获取结果
Post::whereIn('user_id', Follower::where('from_user_id','=','1')->lists('id'))->toSql();
谢谢,我不知道怎么做数组。你创建了Post类吗?谢谢,这太完美了。