Переформатировать сорванную дату в Laravel Collective Select - PullRequest
0 голосов
/ 26 октября 2018

Я использую Laravel Collective форм в своем проекте и часто использую код ниже, чтобы заполнить мои выбранные выпадающие списки.

Однако я сталкиваюсь с проблемой, когда я хочу преобразовать базу данных date, хранящуюся в формате YYYY-MM-DD, чтобы она стала более читабельной, как MM/DD/YYYY.

Для остальной части моего кода я использовал php date/strtotime формат, например, так:

date('m/d/Y', strtotime($date))

У кого-нибудь есть идеи относительно того, как я могу преобразовать то, что извлечено из моей базы данных, для правильного отображения в раскрывающемся списке коллективного выбора laravel?

Контроллер

$scripts_select = Script::orderBy('prescribe_date', 'desc')
    ->pluck('prescribe_date', 'id');

лезвие

{{Form::label('script', 'Script')}}
{{Form::select(
    'script',
    $scripts_select,
    $prescription->script_id, 
    ['class' => 'form-control', 'placeholder' => 'Select a Script']
)}}

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы можете связать метод ->map() и изменить value каждого элемента, как показано ниже:

$scripts_select = Script::orderBy('prescribe_date', 'desc')
    ->pluck('prescribe_date', 'id')->map(function ($date, $key) {
        return date('m/d/Y', strtotime($date))
    })->all();
0 голосов
/ 26 октября 2018

У меня не было изменений, чтобы проверить это, однако, вы можете ->map() после метода ->pluck() изменить формат.

Попробуйте выполнить следующее:

$scripts_select = Script::orderBy('prescribe_date', 'desc')
    ->pluck('prescribe_date', 'id')
    ->map(function ($script, $key) {
        $script['prescribe_date'] = Carbon::createFromFormat('Y-m-d', $script['prescribe_data'])->format('m/d/Y');
        return $script;
    });

Здесь мы перебираем все script, переформатируя все presribe_date, используя Carbon.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...