Это мой индекс-мет:
if ($request->has('search')){
$search = $request->get('search');
$households = Household::where('household_id',"1938347-32960066")->get();
}
Когда я использую вышеупомянутый фрагмент, я получаю данные, но когда я пытаюсь получить те же данные, используя следующий код, он возвращается пустым.
if ($request->has('search')){
$search = $request->get('search');
$households = Household::where('household_id', 'like', '%$search%')->get();
}
В чем проблема и как я могу это исправить?
Параметр поиска предоставляет правильное значение, которое я указываю в поиске.
Вы уверены, что $ search содержит "1938347-32960066" и что вы передаете "% 1938347-32960066%" в качестве последнего параметра функции where ()? Работает ли where('household_id', $search)?
не работает для where ('house_id', $ search)
Тогда логически $ search не может быть равным 1938347-32960066. Убедитесь, что нет тонкой разницы, например, другого дефиса / дефиса или пробелов.
это работает !! Большое спасибо






Вместо этого используйте двойные кавычки
"%$search%"
Of, просто concat:
'%'.$search.'%'
вы также можете попробовать это:
$search= "%".$search."%";
->whereRaw("household_id like '".$search."'")
Арвинд прав в том, что вы в настоящее время передаете статическую строку в запрос, т.е. вы спрашиваете
WHERE household_id LIKE '%string%'. После того, как вы разрешите интерполяцию строк с помощью двойных кавычек (или конкатенации), она должна работать. Убедитесь, что значение в параметре поиска соответствует вашим ожиданиям.