Php 如何查询从单个字符串中提取的多个术语的数据库
这是我获取主题的请求Php 如何查询从单个字符串中提取的多个术语的数据库,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,这是我获取主题的请求 http://localhost:8000/subject=English%2CArt 它把英语和艺术作为一门单独的学科,但应该分开。你知道我如何单独搜索这些主题吗 $students= Student::with(['subscriptions' => function($query){ $query->orderBy('subscriptions.id','desc'); }]) ->
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();
您可以使用explode将主题从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();
}
也许我认为您可以在这里共享您的数据库模式,这样我们可以提供帮助,您还可以使用where来过滤主题的数据