#json #laravel #laravel-5.8
#json #laravel #laravel-5.8
Вопрос:
В моем Laravel-5.8 я передавал данные из базы данных через контроллер для просмотра с использованием JSON:
public function findNationalHoliday(Request $request)
{
$nationalholidays = HrNationalHoliday::select('holiday_date')->whereYear('created_at', '=', date('Y'))->get();
return response()->json([
'nationalholidays' => $nationalholidays,
]);
}
Затем это отправляется в представление, которое отображается с помощью приведенного ajax/json
ниже:
< script type = "text/javascript" >
var holidayDays = [];
$(document).ready(function() {
$(document).on('change', '#leave_type', function() {
var air_id = $(this).val();
var a = $(this).parent();
var op = "";
$.ajax({
type: 'get',
url: '{{ route('
get.leavecounts.all ') }}',
data: {
'id': air_id
},
dataType: 'json', //return data will be json
success: function(data) {
holidayDays = data.nationalholidays;
console.log(data.nationalholidays);
},
error: function() {
}
});
});
}); <
/script>
0:
holiday_date: "2020-11-12 00:00:00"
__proto__: Object
1:
holiday_date: "2020-11-16 00:00:00"
__proto__: Object
2:
holiday_date: "2020-11-19 00:00:00"
__proto__: Object
3:
holiday_date: "2020-11-30 00:00:00"
__proto__: Object
4:
holiday_date: "2020-12-14 00:00:00"
__proto__: Object
5: {holiday_date: "2020-12-01 00:00:00"}
6: {holiday_date: "2020-12-10 00:00:00"}
length: 7
__proto__: Array(0)
Как мне удалить имя поля holiday_date
и конечные нули для времени 00:00:00
?
Но есть только даты.
Спасибо
Ответ №1:
Вы можете map
вернуть свою коллекцию, чтобы вернуть форматированное значение :
public function findNationalHoliday(Request $request) {
$nationalholidays = HrNationalHoliday::select('holiday_date')
->whereYear('created_at', '=', date('Y'))
->get()
->map(function ($nationalholiday) {
return DateTime::createFromFormat('Y-m-d h:i:s', $nationalholiday->holiday_date)
->format('Y-m-d');
});
return response()->json([
'nationalholidays' => $nationalholidays,
]);
}