2015-07-29 4 views
0

У меня есть столбец с типом даты, который устарел. Я дата мутировал его так, чтобы Laravel конвертировал его в экземпляр Carbon, и я могу легко использовать его в других местах, где мне нужно преобразовать его в экземпляр Carbon. Я использую привязку модели в форме редактирования. Поскольку поле даты мутировано, в форме редактирования оно отображается как «2015-07-29 00:00:00». Мне нужно, чтобы он был в этом формате: «2015-07-29».Laravel/Eloquent: проблемы с мутацией даты и привязкой к модели модели

Я не могу использовать accessor, поскольку он мне нужен как экземпляр Carbon во многих других местах.

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

Мой обходной путь заключается в следующем:

Я посылаю флаг, а в том числе частичный вид на странице редактирования и использовать его условие, чтобы иметь два различных кода для создания и редактирования.

@if (isset($edit)) 
    {!! Form::text('eta', $order->eta->format('Y-m-d'), ['class' => 'form-control', 'required']) !!} 
@else 
    {!! Form::text('eta', null, ['class' => 'form-control', 'required']) !!} 
@endif 

Есть ли лучший способ?

ответ

0

Я думаю, что вы можете избежать от @if и $edit как,

{!! Form::text('eta', ($order->eta ? $order->eta->format('Y-m-d') : null) , ['class' => 'form-control', 'required']) !!} 
+0

Да, это правильно. Но это совсем другой стиль для написания того же кода. Я ищу лучшее решение. – Debiprasad

+0

Извините, я обновил ответ, пожалуйста, проверьте :) –

+0

Теперь вы сделали это хуже. Это вызовет исключение. – Debiprasad