Anonymous
Запрос Laravel 7, где между 2 месяцами
Сообщение
Anonymous » 18 сен 2024, 20:45
Я хочу найти данные за 2 месяца, например данные за 8 и 9 месяцев.
Изменить: проблема в этой строке
Код: Выделить всё
else if ($bulan1 != "semua" && $bulan2 != "semua") {
$query->whereBetween(DB::raw('MONTH(kred_kep_aktf_kompetensi.mulai)'), [8, 9]);
}
А это полный код функции
Код: Выделить всё
public function load_kompetensi(Request $request) {
$jenis_kegiatan = $request->input('jenis_kegiatan');
$bulan1 = $request->input('bulan1', 'semua');
$bulan2 = $request->input('bulan2', 'semua');
$tahun = $request->input('tahun', 'semua');
$unit = $request->input('unit', 'semua');
try {
$query = DB::connection('database')
->table('kred_kep_aktf_kompetensi')
->join('Karyawan', 'kred_kep_aktf_kompetensi.nid_karyawan', '=', 'Karyawan.NID')
->join('kred_jenis_kegiatan', 'kred_kep_aktf_kompetensi.id_jenis_kegiatan', '=', 'kred_jenis_kegiatan.id')
->join('kred_jenis_peran', 'kred_kep_aktf_kompetensi.id_peran', '=', 'kred_jenis_peran.id')
->select('kred_kep_aktf_kompetensi.*', 'Karyawan.Nama', 'kred_jenis_kegiatan.nama_kegiatan', 'kred_jenis_peran.nama_peran');
if (session('jabatane') == "Pelaksana") {
$query->where('kred_kep_aktf_kompetensi.nid_karyawan', session('nidkaryawan'));
} else if (session('jabatane') == "Subag/Kanit") {
$query->where('kred_kep_aktf_kompetensi.id_unit_kerja', session('unite_id'));
}
if ($unit != "semua") {
$query->where('kred_kep_aktf_kompetensi.id_unit_kerja', $unit);
}
if ($jenis_kegiatan && $jenis_kegiatan != 'semua') {
$query->where('kred_kep_aktf_kompetensi.id_jenis_kegiatan', $jenis_kegiatan);
}
if ($bulan1 != "semua" && $tahun != "semua") {
$query->whereMonth('kred_kep_aktf_kompetensi.mulai', $bulan1)
->whereYear('kred_kep_aktf_kompetensi.mulai', $tahun);
} else if ($bulan1 != "semua" && $bulan2 == "semua") {
$query->whereMonth('kred_kep_aktf_kompetensi.mulai', $bulan1);
} else if ($bulan1 != "semua" && $bulan2 != "semua") {
$query->whereBetween(DB::raw('MONTH(kred_kep_aktf_kompetensi.mulai)'), [8, 9]);
} else if ($tahun != "semua") {
$query->whereYear('kred_kep_aktf_kompetensi.mulai', $tahun);
}
$files = $query->orderBy('kred_kep_aktf_kompetensi.id', 'asc')->get();
foreach ($files as $file) {
$file->mulai = Carbon::parse($file->mulai)->format('d-m-Y');
$file->akhir = Carbon::parse($file->akhir)->format('d-m-Y');
}
} catch (\Throwable $th) {
throw $th;
}
return view("keperawatan.list_aktf_kompetensi_load", ['files' => $files]);
}
И это формат kred_kep_aktf_kompetensi.mulai: (ГГГГ-ММ-ДД)
2024-08-09 06:51:30.000< /p>
Я попробовал выполнить запрос в SQL со следующим запросом:
Код: Выделить всё
SELECT * FROM kred_kep_aktf_kompetensi
WHERE (MONTH(mulai) BETWEEN 8 AND 9);
и результат такой же, как и я.
Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/789 ... en-2-month
1726681516
Anonymous
Я хочу найти данные за 2 месяца, например данные за 8 и 9 месяцев. Изменить: проблема в этой строке [code]else if ($bulan1 != "semua" && $bulan2 != "semua") { $query->whereBetween(DB::raw('MONTH(kred_kep_aktf_kompetensi.mulai)'), [8, 9]); } [/code] А это полный код функции [code]public function load_kompetensi(Request $request) { $jenis_kegiatan = $request->input('jenis_kegiatan'); $bulan1 = $request->input('bulan1', 'semua'); $bulan2 = $request->input('bulan2', 'semua'); $tahun = $request->input('tahun', 'semua'); $unit = $request->input('unit', 'semua'); try { $query = DB::connection('database') ->table('kred_kep_aktf_kompetensi') ->join('Karyawan', 'kred_kep_aktf_kompetensi.nid_karyawan', '=', 'Karyawan.NID') ->join('kred_jenis_kegiatan', 'kred_kep_aktf_kompetensi.id_jenis_kegiatan', '=', 'kred_jenis_kegiatan.id') ->join('kred_jenis_peran', 'kred_kep_aktf_kompetensi.id_peran', '=', 'kred_jenis_peran.id') ->select('kred_kep_aktf_kompetensi.*', 'Karyawan.Nama', 'kred_jenis_kegiatan.nama_kegiatan', 'kred_jenis_peran.nama_peran'); if (session('jabatane') == "Pelaksana") { $query->where('kred_kep_aktf_kompetensi.nid_karyawan', session('nidkaryawan')); } else if (session('jabatane') == "Subag/Kanit") { $query->where('kred_kep_aktf_kompetensi.id_unit_kerja', session('unite_id')); } if ($unit != "semua") { $query->where('kred_kep_aktf_kompetensi.id_unit_kerja', $unit); } if ($jenis_kegiatan && $jenis_kegiatan != 'semua') { $query->where('kred_kep_aktf_kompetensi.id_jenis_kegiatan', $jenis_kegiatan); } if ($bulan1 != "semua" && $tahun != "semua") { $query->whereMonth('kred_kep_aktf_kompetensi.mulai', $bulan1) ->whereYear('kred_kep_aktf_kompetensi.mulai', $tahun); } else if ($bulan1 != "semua" && $bulan2 == "semua") { $query->whereMonth('kred_kep_aktf_kompetensi.mulai', $bulan1); } else if ($bulan1 != "semua" && $bulan2 != "semua") { $query->whereBetween(DB::raw('MONTH(kred_kep_aktf_kompetensi.mulai)'), [8, 9]); } else if ($tahun != "semua") { $query->whereYear('kred_kep_aktf_kompetensi.mulai', $tahun); } $files = $query->orderBy('kred_kep_aktf_kompetensi.id', 'asc')->get(); foreach ($files as $file) { $file->mulai = Carbon::parse($file->mulai)->format('d-m-Y'); $file->akhir = Carbon::parse($file->akhir)->format('d-m-Y'); } } catch (\Throwable $th) { throw $th; } return view("keperawatan.list_aktf_kompetensi_load", ['files' => $files]); } [/code] И это формат kred_kep_aktf_kompetensi.mulai: (ГГГГ-ММ-ДД) 2024-08-09 06:51:30.000< /p> Я попробовал выполнить запрос в SQL со следующим запросом: [code]SELECT * FROM kred_kep_aktf_kompetensi WHERE (MONTH(mulai) BETWEEN 8 AND 9); [/code] и результат такой же, как и я. Спасибо! Подробнее здесь: [url]https://stackoverflow.com/questions/78997013/laravel-7-query-wherebetween-2-month[/url]