Поиск в базе данных через запятую в Laravel и отображение подробностей с более чем 4 соответствующими номерами - PullRequest
1 голос
/ 23 января 2020

У меня есть номера, хранящиеся в виде запятой в поле базы данных, например 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 блэйд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...