Используя вспомогательный инструмент формы Laravel Collective, два поля даты не заполняются старыми значениями - PullRequest
0 голосов
/ 27 сентября 2019

Я использую помощник формы Laravel Collective для создания этой формы:

@if($formIsEdit)
    {{ Form::model($absense, ['route' => ['absensedatapost', $absense->id]]) }}
@else
    {{ Form::open(['route' => ['absensedatapost', 0]]) }}
@endif

<div class="row">
    <div class="form-group col-xs-12 {{ ZHtml::fieldHasErrorClass($errors, "type") }}">
        {{ Form::label('type', trans('absenses.type')) }}
        {{ Form::select('type', $types, null, ['class' => 'form-control']) }}
        {!! ZHtml::showFormFieldErrorMessage($errors, "type") !!}
    </div>
</div>

<div class="row">
    <div class="form-group col-md-6 {{ ZHtml::fieldHasErrorClass($errors, "startdate") }}">
        {{ Form::label('startdate', trans('absenses.startdate')) }}
        {{ Form::date('startdate', null, ['class' => 'form-control']) }}
        {!! ZHtml::showFormFieldErrorMessage($errors, "startdate") !!}
    </div>
    <div class="form-group col-md-6 {{ ZHtml::fieldHasErrorClass($errors, "enddate") }}">
        {{ Form::label('enddate', trans('absenses.enddate')) }}
        {{ Form::date('enddate', null, ['class' => 'form-control']) }}
        {!! ZHtml::showFormFieldErrorMessage($errors, "enddate") !!}
    </div>
</div>

<div class="row">
    <div class="form-group col-xs-12 {{ ZHtml::fieldHasErrorClass($errors, "requestcomment") }}">
        {{ Form::label('requestcomment', trans('general.additionalcomment')) }}
        {{ Form::textarea('requestcomment', null, ['class' => 'form-control', 'rows' => 6]) }}
        {!! ZHtml::showFormFieldErrorMessage($errors, "requestcomment") !!}
    </div>
</div>

//... and some more below...

В контроллере, если что-то не так, я делаю следующее: return redirect()->back()->withInput();

type выберите, и текстовая область requestcomment заполняется предыдущими данными, но не начальной и не конечной датой.

Есть идеи, почему?Я ничего не делаю с этими значениями в контроллере.

Удаление частей ZHtml не меняет этого.

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2019

Красота LaravelCollective заключается в привязке формы к модели.

Тем не менее, есть пара «ошибок», которые нужно искать.Я подозреваю, что это отправляет обратно данные формы в неправильном формате, который форма не читает, вызывая возможную проблему с синтаксическим анализом, чтобы соответствовать либо потребностям формы, либо потребностям объекта.В качестве альтернативы, если эти поля startdate и enddate не установлены в вашей модели как protected $dates[], возможно, вместо правильного формата будет задана строка назад.

Попробуйте сбросить то, что возвращается, чтобы посмотреть формат даты.Если это объект Carbon, вы можете попытаться отформатировать его с ручной проверкой вместо null, как в примере ниже.IE $absense->startdate->format('Y-m-d').Если это строка, попробуйте ввести метод Carbon::parse, в зависимости от формата строки.

Вы можете вручную ввести поле даты модели вместо null, чтобы поиграть с этим, пока вы ненайти то, что он делает.Что-то вроде:

// Try without the format first just to see if it isn't binding for some reason
{{ Form::date('startdate', isset($absense->startdate) ? $absense->startdate
    : null ['class' => 'form-control']) }}  
...