В Laravel бэкэнде у меня есть customers.index
метод контроллера:
$result = $department->Customers()->getQuery();
$result = QueryBuilder::for($result)
->allowedFilters([
'title',
'description',
'email',
'phone'
])
->defaultSort('title')
->allowedSorts([
'title',
'email'
]);
$result = $result->paginate($request->per_page ?: 10)->appends(request()->query());
return response()->json([
'message' => '',
'data' => $result
]);
теперь в Vuejs интерфейсе. Я хочу, чтобы строка запроса была похожа на
host/api/customer?page=2&per_page=15&filter[title]=foo
Я попробовал этот подход :
const params = {
page: this.page,
per_page: 15,
filter: {
search: this.query
}
};
console.log(JSON.stringify(params));
this.$axios
.get(`/api/customer`, {
params
});
но строка запроса стала:
customer?0=%7B%22page%22:1,%22per_page%22:15,%22filter%22:%7B%22search%22:%221231%22%7D%7D
У меня есть другая опция: использовать шаблонный литерал как:
api/customer?filter[search]=${this.query}&page=${this.page}&per_page=${this.per_page}
Вопрос 1:
как получить правильную строку запроса из объекта params
Вопрос 2:
есть ли документация по этому вопросу filter[title]=...
запрос строки? как я могу использовать их в AND, или случаях?