Php 如何在Laravel 4雄辩的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

我正在将我现有的twitter克隆玩具项目转换为Laravel4。我以前使用过codeigniter框架,雄辩的ORM是我接触过的第一个ORM。 所以我对如何做一些预先查询感到困惑, 下面的查询是获取所有
帖子
,这些帖子是由
用户创建的,后面跟着
当前用户
。此存储过程片段工作正常

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类吗?谢谢,这太完美了。