在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);这段代码将选择所有的帖子,而不是用户,并对错误的页面进行分页。有人能帮我吗?非常感谢!
发布于 2015-05-14 10:11:52
您正在寻找whereHas方法:
$posts = Post::whereHas('user', function($query)
{
$query->where('email', Input::get('email'));
})->paginate(10);https://stackoverflow.com/questions/30228161
复制相似问题