Я использую Laravel в качестве бэкэнда и Vue.js в качестве внешнего интерфейса.
Я создаю API для получения всех данных без какого-либо фильтра на основе месяца.
Итак, как я могу показать данные за их месяц в шаблоне Vue.js?
Например, у меня есть данные:
Как лучше их показать? или мне нужно создать другой метод для разных месяцев в контроллере.
Пожалуйста, порекомендуйте Спасибо






У меня также такое же состояние, когда я выбираю диапазон дат из календаря на vue и отправляю эти даты в laravel, а затем анализирую эти даты в laravel с помощью Carbon и нахожу красноречивые записи, используя этот диапазон дат.
$query = Payment::query();
if ($request->filled('startDate')){
$query = $query->where('date','>=',Carbon::parse($request->startDate)->toDateTimeString());
}
if ($request->filled('endDate')){
$query = $query->where('date','<=',Carbon::parse($request->endDate)->toDateTimeString());
}
return response()->json(['payments' => $query->get()]; //return in format that you want
Мы также можем вернуть диапазон дат от начальной до конечной даты, используя углерод
function findDateRange($request)
{
$carbon = '\Carbon\Carbon';
$dateRange = 'Invalid Date Range';
if ($request->filled('startDate') && $request->filled('endDate')){
$differenceInDays = $carbon::parse($request->startDate)->diffInDays($carbon::parse($request->endDate));
if ($differenceInDays < 7){
$dateRange = 'Week '. $carbon::parse($request->startDate)->weekOfYear .'<br>'. $carbon::parse($request->startDate)->format(authUser()->date_format) .' - '.$carbon::parse($request->endDate)->format(authUser()->date_format);
}elseif ($differenceInDays > 6 && $differenceInDays < 32){
$dateRange = $carbon::parse($request->startDate)->format('F Y');
}elseif ($differenceInDays > 32 && $differenceInDays < 366){
$dateRange = $carbon::parse($request->startDate)->format('Y');
}
}
return $dateRange;
}
это вернет диапазон дат, как показано на изображении



Как вы отправляете из vue js.
Лайк за каждый месяц л
Я отправляю только дату начала и окончания, а углерод говорит мне, что это март или апрель.
Хорошо спасибо. Или, если я хочу загрузить данные при загрузке dom, то как отправить параметр на сервер в зависимости от месяца.
извините, я знаю, что это очень простой квест, но я новичок в Vue js
при загрузке мы обычно получаем полные записи. Поэтому не отправляйте никаких дат, просто извлеките все записи. когда пользователь выбирает любой диапазон дат, затем отправляет его и извлекает записи, используя эти даты. код, который я написал в начале, проверяет, доступны ли даты, а затем находит записи, используя эти записи, в противном случае извлекает все.
да, я знаю, как получить на основе выбора пользователя. Но например, если я хочу иметь предопределенную область каждого месяца, чем отображать данные на основе этого месяца.
предположим, вы хотите получить записи за текущий месяц, затем получить месяц с помощью js и отправить вызов API. Вы можете легко получить дату начала и окончания текущего месяца, как бы вы ни хотели, используя js Date
Итак, мне нужно использовать разные методы в vue js для каждого месяца или это можно сделать одним методом?
только один метод вернет вам диапазон дат вашего текущего месяца
Для каждых 12 месяцев нужно создавать разные массивы, такие как январь и февраль, одним методом? или мы можем передать любые параметры в метод загрузки
отправить выбранный диапазон дат в laravel и проанализировать его с помощью углерода. Затем вы можете легко найти дату, номер недели, номер месяца и многое другое, а после этого вы можете запросить свой красноречивый, чтобы найти записи в этом временном диапазоне.