如何在laravel 4.2中检查一个具有两个值的字段

时间:2017-07-28 05:59:35

标签: php laravel

$input = Input::all();


$user = User::where(function($q) {
          $q->where('email', $input['email'] )
            ->orWhere('email', $input['emails'][0]['value'] );
      })
      ->first();

   print_r($user);die;

总是说Undefined变量:输入         将电子邮件与两个值进行比较的最佳方法是什么,请指导

2 个答案:

答案 0 :(得分:3)

添加use($input)以将$input变量传递给闭包范围:

User::where(function ($q) use ($input) {
  

闭包还可以从父作用域继承变量。任何此类变量都必须传递给use语言构造。

http://php.net/manual/en/functions.anonymous.php

答案 1 :(得分:0)

User::where(function($q) use ($input) {
    $q->where('email', $input['emails'][0]['value']);
    if (array_key_exists('email', $input)) {
        $q->orWhere('email', $input['emails'][0]['value']);
    }
})

但请确保您始终拥有此值 $ input ['电子邮件'] [0] ['值']

相关问题