В настоящее время я использую Laravel с вызовом AJAX в базу данных для извлечения содержимого в базе данных. Раньше я делаю селектор языков, который будет фильтровать видеоязык. Но теперь я намерен изменить его на несколько языковых селекторов. Я google для множественной фильтрации результатов, но ни один из них не работает для меня. Я использую вызов AJAX, когда пользователь выбирает один язык. Для текущего случая у нас есть несколько вызовов AJAX с несколькими вариантами выбора.
Javascript AJAX (когда вы выбираете новый язык)
var language = $(this).text();
var channel = "{{ $channel }}";
$.ajax({
url:'/directory/updateLanguage/live/'+language+'/'+channel,
type: 'GET',
success: function(data) {
$('#live').html(data);
}
});
$.ajax({
url:'/directory/updateLanguage/past/'+language+'/'+channel,
type: 'GET',
success: function(data) {
$('#past').html(data);
}
});
URL-адрес будет выполняться ниже из Controller:
public function updateLanguage($type,$language,$channel)
{
$categoryId = Channel::where('name','=',strtolower($channel))->pluck('category_id');
if ($language == "All Languages" && $categoryId == 0)
{
var_dump("IF All languages and category all");
$past = Videos::orderBy('created_at','desc')->where('active','=',1);
$live = Videos::where('stream_active','=','1')->where('active','=',1)->orderBy('created_at','desc');
}else if ($categoryId != 0) {
var_dump("Any languages and Not in 'all' ");
$past = Videos::where('category_id','=', $categoryId)->where('stream_active','=','0')->where('active','=',1)->where('language','=',$language)->orderBy('created_at','DESC');
$live = Videos::where('category_id','=', $categoryId)->where('stream_active','=','1')->where('active','=',1)->where('language','=',$language)->orderBy('created_at','DESC');
}else {
var_dump("ELSE");
}
...
}
В настоящее время я хочу фильтровать несколько видео на одном языке. У меня есть div в виде списка видео, я знаю, как фильтровать одноязычное видео, но не несколько селекторов языков в базе данных.
Вы можете установить переменную langage, например: fr.en.nl
Затем в вашем PHP вы разделите строку как
$str = 'fr.en.nl';
$langages= preg_split('.', $str);
Наконец, задайте запрос SQL с помощью ORWHERE (Laravel)
->where('language','=',$languages[0])->orWhere('language','=',$language[1])
if(count(langages) > 1)
=> Вы должны выполнить простой foreach для своей переменной langages. Для каждого значения вы добавляете условие!