Intereting Posts
Передача переменной из вида в модель в mvc создать zip-файл в php и переименовать каждый файл перед добавлением Сортировка многомерного массива на основе упорядоченного массива Вычисление размера изображения в дюймах или dpi из пикселей с использованием php Как я могу создать объект DOM из HTML-файла на языке php? Как использовать J модификатор в php? Избегайте использования isset в PHP при доступе к $ _POST, $ _GET и другим переменным? неожиданное поведение после изменения отношений сущностей Apache, javascript и PhoneGap: Каков наилучший способ прослушать какое-то случайное событие? Интервал или длительный опрос? Вставка производительности node-mongodb-native Вызов конкретной функции PHP в форме submit Как я могу запретить пользователям доступ к файлам include? fwrite () более 2 GiB? PHP – найти следующую будущую повторяющуюся дату? порядок строк при вставке многострочных строк в MySQL

Могу ли я получить пользовательский формат даты для сбора (списков) на Laravel5?

Это мои записи в БД.

tests table id date 1 2016-07-01 2 2016-07-31 3 2016-08-01 4 2016-08-15 5 2016-08-31 6 2016-09-01 

Я хочу выбрать запись по месяцам. Теперь мой код – это.

контроллер

 $months = \App\Test::where('date', '<=', 'now()') ->orderBy('date', 'desc') ->pluck('date', 'date'); 

Посмотреть

 {{ Form::select('month', $months, old('month'), ['id' => 'month']) }} ( that generate this. ) <select id="month" name="month"> <option value="2016-07-01">2016-07-01</option> <option value="2016-07-31">2016-07-31</option> <option value="2016-08-01">2016-08-01</option> <option value="2016-08-15">2016-08-15</option> </select> 

Но я хочу этого.

 $months = \App\Test::where('date', '<=', 'now()') ->orderBy('date', 'desc') // ->format('m'). ->pluck('date', 'date'); {{ Form::select('month', $months, old('month'), ['id' => 'month']) }} ( I wanna generate this ) <select id="month" name="month"> <option value="7">7</option> <option value="8">8</option> </select> 

Я хочу использовать формат с отрывом, но не могу сделать это, к сожалению, все решает?

Related of "Могу ли я получить пользовательский формат даты для сбора (списков) на Laravel5?"

Вы можете сделать это тремя способами. Все эти решения зависят от того, что атрибут date не является экземпляром Carbon, который является вашим случаем.

  1. Аксессуар для атрибута date возвращает формат вашего желания:

В вашей тестовой модели

test.php

 public function getDateAttribute($value) { return Carbon::createFromFormat('Ymd H', $value)->format('m'); } 

Однако это повредит код.

  1. Второй способ – создать пользовательский атрибут.
 public function getFormattedDateAttribute() { return Carbon::createFromFormat('Ymd H', $this->date)->format('m'); } 
  1. Третий способ – отредактировать саму коллекцию.
 $months = \App\Test::where('date', '<=', 'now()') ->orderBy('date', 'desc') ->pluck('date'); $months->each(function($month){ return Carbon::createFromFormat('Ymd H', $month)->format('m'); }); в $months = \App\Test::where('date', '<=', 'now()') ->orderBy('date', 'desc') ->pluck('date'); $months->each(function($month){ return Carbon::createFromFormat('Ymd H', $month)->format('m'); }); 
 $months = \App\Test::select(DB::raw('to_char(date, \'MM\')')) ->where('date', '<=', 'now()') ->orderBy('date', 'desc') ->pluck('date', 'date'); 

Это даст вам список месяцев.

Больше информации

Спасибо всем, я сдался месяц с БД вчера, но сегодня! Я получил ИСТИННЫЙ ответ с этим кодом XD. ПРИМЕЧАНИЕ. Этот код будет работать только с Postgresql, а где … now () тоже. это postgres код. Mysql или sqlite должны изменить DB raw и где код ya.

 $months = \App\Test::select(\DB::raw('DATE_PART(\'MONTH\', date) AS MONTH')) ->where('date', '<=', 'now()') ->orderBy('date', 'desc') ->pluck('month', 'month');