如何在Laravel中存储多个关系

时间:2018-12-21 11:45:06

标签: php laravel

我想使用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);

我如何使用emailfirst_name这两个参数显示记录

  

未定义的$ email和$ first_name

我在where语句中声明的

我们将非常感谢您的帮助。

1 个答案:

答案 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);
});