小编Hal*_*üce的帖子

Laravel 集合中的搜索值

我有一个包含用户联系人的集合,我想在该集合中搜索一个值。

我尝试了 $itemCollection->where('username', $search); 但它仅向我显示 $search 值完全等于用户名,但我想获得也包含该值的结果。

例如,我将“yunus”值作为用户名,当我搜索“yunus”时,它运行良好,但如果我也搜索“yun”或“y”值,我想查看结果。

我搜索了它,我确实发现我必须使用 where 'like' 方法,但我确实发现它不适用于集合:(

我的函数用于获取具有我搜索的用户名值的用户联系人

public function index(Request $request)
    {

      $contacts = [];
      $user = request()->user();
      $search = $request->search;

      Contact::for($user->id)
      ->orderBy('created_at', 'DESC')
      ->get()
      ->each(function ($contact) use ($user, &$contacts) {
          $friend = $contact->user1_id === $user->id ? $contact->user2 : $contact->user1;
          $contacts[] = $friend->toArray() + ['room' => $contact->room->toArray()];
      });

      $itemCollection = collect($contacts);

      $filtered = $itemCollection->where('username', $search);


      $filtered->all();


        return response()->json($filtered);
    }
Run Code Online (Sandbox Code Playgroud)

结果:Json 输出

php collections laravel

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

collections ×1

laravel ×1

php ×1