Как удалить имя поля из вывода json

#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,
    ]);
}