Этот вопрос очень похож на Laravel фильтрует значение во всех столбцах. Извините, если позже это окажется дубликатом, но у меня есть другой рабочий код.
Что работает, так это фильтрация на стороне клиента через JavaScript:
filterfunction : function(entry, filter)
{
if(filter != null)
filter.trim().split(' ').forEach(function(item){
if(!this.eachRecursive(entry, item))
return false;
});
return true;
},
eachRecursive: function(obj, localfilter) {
for(const key in obj) {
if (!obj.hasOwnProperty(key))
continue;
if(typeof obj[key] == "object" && obj[key] !== null){
if(this.eachRecursive(obj[key], localfilter))
return true;
}
else
if((obj[key] + "").toLowerCase().indexOf(localfilter.toLowerCase()) != -1)
return true;
}
return false;
},
Функция фильтра используется в качестве функции фильтра для табличного компонента Bootstrap-Vue, как описано в пользовательской функции фильтра.
Теперь вопрос: как добиться аналогичной функциональности в Laravel-Backend (для использования с Livewire)?
Я могу представить, что список всех столбцов через getColumnListing, упомянутый в Laravel, фильтрует значение в все столбцы возможны, но этого будет недостаточно, мне все еще нужны отношения, как в запрос laravel mysql с несколькими where илиwhere и внутренним соединением. В настоящее время я пытаюсь преобразовать объект Eloquent в JSON, а затем проанализировать его, так как он включает все загруженные отношения красноречивая сериализация. Но это похоже на последнее средство и своего рода неправильное использование сериализации.