我想使用whereHas存储多个关系,但是我无法使用此关系解决问题。
$email = $request->input('email');
$first_name = $request->input('first_name');
User::whereHas('userBasicInfo',function( $query ){
$query->where('email', $email);
})->whereHas('userContactInfo', function ( $query ) {
$query->where('first_name', $first_name);
我如何使用email
和first_name
这两个参数显示记录
我在未定义的$ email和$ first_name
where
语句中声明的。
我们将非常感谢您的帮助。
答案 0 :(得分:2)
您可以使用use
关键字将变量传递给闭包函数;
User::whereHas('userBasicInfo',function( $query ) use ($email){
$query->where('email', $email);
})->whereHas('userContactInfo', function ( $query ) use ($first_name){
$query->where('first_name', $first_name);
// For multiple variables pass.
User::whereHas('userBasicInfo',function( $query ) use ($email, $first_name){
$query->where('email', $email);
$query->where('first_name', $first_name);
});