Как запросить базу данных по нескольким терминам, извлеченным из одной строки - PullRequest
0 голосов
/ 05 октября 2019

Это мой запрос GET для предмета.

http://localhost:8000/subject=English%2CArt

В нем английский и искусство рассматриваются как один предмет, но он должен быть отдельным. Любая идея, как я могу искать эти предметы индивидуально?

 $students= Student::with(['subscriptions' => function($query){
            $query->orderBy('subscriptions.id','desc');
          }])
           ->whereHas('subjects', function ($query) use ($subject) {

              $query->where('name', 'like', "%{$subject}%")->orderByRaw('RAND()');

             })->distinct()->get();

1 Ответ

0 голосов
/ 05 октября 2019

вы можете использовать разнесение, чтобы отделить тему от URL-адреса на 2 темы, в данном случае английский и искусство, после чего вы можете зациклить тему

   $subjects = explode(",", $subject);
    foreach($subjects as $subject){

        $students= Student::with(['subscriptions' => function($query){
                    $query->orderBy('subscriptions.id','desc');
                  }])
                   ->whereHas('subjects', function ($query) use ($subject) {

                      $query->where('name', 'like', "%{$subject}%")->orderByRaw('RAND()');

                     })->distinct()->get();
    }

возможно, я думаю, вы можете поделиться своей схемой базы данных вздесь, чтобы мы могли помочь, вы также можете использовать whereIn для фильтрации данных субъектов

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