在Laravel,我有两张桌子:
帖子表:
╔════╦══════════════╦══════╗
║ ID ║ CONTENT ║USERID║
╠════╬══════════════╬══════╣
║ 1 ║ Lorem 1 ║ 1 ║
║ 2 ║ Lorem 2 ║ 3 ║
║ 3 ║ Lorem 3 ║ 1 ║
║ 4 ║ Lorem 4 ║ 2 ║
╚════╩══════════════╩══════╝
用户表:
╔════╦════════════════╗
║ ID ║ EMAIL ║
╠════╬════════════════║
║ 1 ║user1@email.com ║
║ 2 ║user2@email.com ║
║ 3 ║user3@email.com ║
║ 4 ║user4@email.com ║
╚════╩════════════════╝
我想使用Laravel选择用户ID发布的所有帖子。 发布,用户模型:
#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:
$post = Post::with(array(
'user' => function($query)
{
$query->where('email', Input::get('email'));
}
))->paginate(10);
此代码将选择所有帖子,而不是用户和分页错误页面。 有人可以帮帮我吗? 非常感谢!
答案 0 :(得分:1)
您正在寻找whereHas
方法:
$posts = Post::whereHas('user', function($query)
{
$query->where('email', Input::get('email'));
})->paginate(10);