首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Eloquent模型

使用Eloquent模型
EN

Stack Overflow用户
提问于 2015-05-14 10:07:26
回答 1查看 378关注 0票数 0

在Laravel中,我有两个表:

帖子表:

代码语言:javascript
复制
╔════╦══════════════╦══════╗
║ ID ║  CONTENT     ║USERID║
╠════╬══════════════╬══════╣
║  1 ║ Lorem 1      ║  1   ║
║  2 ║ Lorem 2      ║  3   ║
║  3 ║ Lorem 3      ║  1   ║
║  4 ║ Lorem 4      ║  2   ║
╚════╩══════════════╩══════╝

和用户表:

代码语言:javascript
复制
╔════╦════════════════╗
║ ID ║  EMAIL         ║
╠════╬════════════════║
║  1 ║user1@email.com ║
║  2 ║user2@email.com ║
║  3 ║user3@email.com ║
║  4 ║user4@email.com ║
╚════╩════════════════╝

我想使用Laravel选择用户ID发布的所有帖子。帖子,用户模型:

代码语言:javascript
复制
#Post Model
class Post extends \Eloquent {
    public function user()
    {
        return $this->belongsTo('User', 'userid');
    }
}

#User Model
class User extends \Eloquent {
    public function post()
    {
        return $this->hasMany('Post');
    }
}

现在,我是使用Laravel Eloquent选择的:

代码语言:javascript
复制
$post = Post::with(array(
    'user'  =>  function($query)
    {
        $query->where('email', Input::get('email'));
    }
))->paginate(10);

这段代码将选择所有的帖子,而不是用户,并对错误的页面进行分页。有人能帮我吗?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-05-14 10:11:52

您正在寻找whereHas方法:

代码语言:javascript
复制
$posts = Post::whereHas('user', function($query)
{
    $query->where('email', Input::get('email'));

})->paginate(10);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30228161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档