У меня есть номера, хранящиеся в виде запятой в поле базы данных, например ticketNumbers: 1,2,3,12,45,67. У пользователя есть текстовое поле в laravel блейде, где он вводит 6 цифр для поиска людей с этими цифрами. Теперь в моем блейде я хочу получить только людей, у которых есть более 4 чисел, которые похожи на искомые числа. Ниже приведена функция поиска в моем контроллере, но она показывает всех, даже с одним соответствующим номером.
public function findPerson(Request $request)
{
$s = $request->search;
$s1 = $request->search1;
$s2 = $request->search2;
$s3 = $request->search3;
$s4 = $request->search4;
$s5 = $request->search5;
$fac = $s.','.$s1.','.$s2.','.$s3.','.$s4.','.$s5;
$data = explode(',',$fac);
$str='';
$i=1; // to append AND in query
foreach ($data as $key => $value) {
$str .= 'FIND_IN_SET("'.$value.'" ,ticketNumbers)';
if($i < count($data)){
$str .=' OR '; // use OR as per use
}
$i++;
}
$raffles = Raffle::whereRaw($str)->get();
return View('raffles.index', compact('raffles'));
}
Ниже приведен скриншот моего блэйда
Мой laravel блэйд