变量不会传递给过滤器

时间:2018-02-14 00:01:27

标签: php laravel

我正在制作搜索算法,并希望在Laravel集合过滤器方法中使用查询中的$ needle。但我确定我传递了一个值,甚至检查它但是我得到一个针是空的错误

代码:

if ( array_key_exists('search', $query) && $query['search'] != '' ) {

      $needle = strtolower($query['search']);

      $orders->filter(function ($order) use ($needle) {

           foreach ($order as $attribute => $value) {

               if ( strpos($needle, strtolower($value)) !== false ) {

                    return $order;

               }

           }

      });

}

1 个答案:

答案 0 :(得分:3)

你已经反转了strpos个函数参数,它应该是haystack, needle,所以请尝试反转内部的值