2015-10-26 43 views
3

如何在Laravel Eloquent中执行此查询?Laravel5雄辩从多个表中选择where条款

SELECT * FROM `ftm_users`, `ftm_students`, `ftm_user_verification` WHERE `ftm_users`.`user_group` = 3 AND `ftm_user_verification`.`verification_status` = 1 AND `ftm_users`.`uid` = `ftm_students`.`uid` AND `ftm_users`.`uid` = `ftm_user_verification`.`uid` 

我已经设置模式的关系,我与这个

$userStudent = User::where('user_group', '=', 3)->with(array('userVerification' => function($query) { 
     $query->where('verification_status', '=', 1); 
    }, 'student', 'studentParents'))->simplePaginate(20); 

尝试,但该查询使用分离SELECT语句从不同的表中的数据。

谢谢。

+2

你是显示将无法正常工作的查询,将不得不使用连接来过滤另一个表。 – Jerodev

+0

你可以请你的问题更具体吗?您的第一个'mysql'语句显示尝试进行连接。第二个代码是尝试选择过滤的记录。 – Mysteryos

回答

1

假设你​​和ftm_user_verification之间定义的关系,你可以使用whereHas方法在文档过滤相关模型

$userStudent = User::where('user_group', '=', 3)->whereHas('userVerification', function ($query) { 
    $query->where('verification_status', '=', 1); 
})->get(); 

检查Querying Relationship Existence