У меня есть коллекция, которая содержит контакты пользователя, я хочу найти значение в этой коллекции.
Я пробовал $ itemCollection-> where ('username', $ search);но он показывает мне, только если значение $ search полностью совпадает с именем пользователя, но я хочу получить результаты, которые тоже содержат это значение.
Например, у меня есть значение "yunus" в качестве имени пользователя и когда я`В поиске "yunus" он работает хорошо, но я хочу увидеть результат, если я тоже буду искать значения "yun" или "y".
Я искал его и обнаружил, что должен использовать метод where 'like'но я обнаружил, что это не работает для коллекций: (* 1007 *
Моя функция для получения контактов пользователя, у которой есть мое искомое значение имени пользователя
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);
}
Результат: Вывод Json