搜索查询如何导致laravel?

时间:2017-11-03 10:46:41

标签: php laravel

如何在$ result中搜索特定值?

public  static function getUserLocked() {

    $result=DB::table('users')->where('status', 'locked')->get();               
    return $result;

}

6 个答案:

答案 0 :(得分:0)

 $result = DB::table('users')
          ->where('name', 'LIKE', '%'.$search_value.'%')
          ->where('status', 'locked')
          ->get();

答案 1 :(得分:0)

这样的事情可以解决问题:

$result = DB::table('users')
          ->where('column', 'LIKE', '%'.$search_value.'%')
          ->where('status', 'locked')
          ->get();

列是您要搜索的表用户的列,$search_value将是要在该列中搜索的给定输入字符串。

因此,如果您正在寻找包含测试的名称,它将如下所示:

$search_value = "test";
$result = DB::table('users')
          ->where('name', 'LIKE', '%'.$search_value.'%')
          ->where('status', 'locked')
          ->get();

答案 2 :(得分:0)

如果要搜索返回的集合,可以使用eloquent集合过滤器方法。见https://laravel.com/docs/5.5/collections#method-filter

例如:

$searchResults = $result->filter(function($r)
      {
         return $r->variablename == value;  //replace variablenae & value with your own
       });
    }

答案 3 :(得分:0)

我建议jarektkaczyk/eloquence包搜索,我确定它比它可以免费使用。

答案 4 :(得分:0)

如果您要搜索包含的值,则只需添加%,否则请删除%。检查此代码:

public static function getUserLocked() {

    $result=DB::table('users')->where('status', 'LIKE', '%locked%')->get();               
    return $result;

}

已锁定的所有内容'将选择单词

答案 5 :(得分:0)

您可以使用result[index]->field_name

或使用->toarray()将其转换为数组,并将其用作2D数组(result[index]["field_name"])