我正在尝试在Blade View中显示格式化日期。我正在使用Laravel 4.1。
我在config/app.php
'Carbon' => 'Carbon\Carbon'
我按如下方式迁移约会表:
$table->dateTime('appointment');
查看
@foreach($appointments as $appointment)
<tr>
<td>{{{ $appointment->customer_name }}}</td>
<td>{{{ $appointment->consultant->consultant_name }}}</td>
<td>{{{ $appointment->appointment }}}</td> {{-- Displays as seen in mysql --}}
</tr>
@endforeach
如果我尝试按如下方式格式化日期,则会抛出异常:
<td>{{{ $appointment->appointment->format('Y-m-d') }}}</td>
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Call to a member function format() on a non-object
如果我将{{{ $appointment->appointment->format('Y-m-d') }}}
更改为{{{ $appointment->created_at->format('Y-m-d') }}}
,则日期格式正确。
我如何获得laravel和Carbon来处理appointment
作为我可以格式化的日期?
答案 0 :(得分:0)
在Appointment
模型中添加属性
protected $dates = array('appointment');
将其选中并添加到默认字段中,将其视为日期(created_at
,updated_at
和deleted_at
),然后自动转换为Carbon
实例。
您可以改为覆盖getDates
方法,正如您在评论中所建议的那样,但由于您仍希望将所有默认字段视为日期,因此无需覆盖{{1}}方法。通过设置此属性,无需重复它们。请参阅the source code for getDates
。