希望你一切都好!
我有一个问题,我有很多问题,在我的 Laravel 应用程序中,我在所有地方都使用 Carbon 来记录日期,因为我没有使用 created_at 来调用日期,我使用不同的行,在这种情况下,该行在我的控制器中调用 event_date_start ,当创建新事件时,日期将以这种格式保存 m/d/Y h : 我是
所以,请求是这样的:
$event->event_date_start = Carbon::parse($request->event_date_start)->format('m/d/Y h:i a');
在这一步之前一切都很好,问题是当我在刀片上调用该行时,因为给我英文记录,例如“January”,但我需要“Enero”
我创建了一个开关,还使用了来自 GitHub 的包,并且还创建了一个特征,但所有这些都只适用于“created_at”和“updated_at”行
如果有人可以帮助我,我将非常感激!
使用translatedFormat()而不是format()
$event->event_date_start = Carbon::parse($request->event_date_start)->translatedFormat('m/d/Y h:i a');
您是否尝试过将
event_date_start
放入模型的 $dates
属性中?如果没有,您可以通过在模型中创建一个名为 protected
的 $dates
属性来实现。
protected $dates = ['event_date_start'];
默认情况下,Laravel 会在
Carbon实例中转换模型的
created_at
和 updated_at
属性,所以我认为,当 Laravel 转换它时,它会使用 configs 作为应用程序中的日期(例如,假设您已将 Laravel 应用程序配置为以 西班牙语)显示日期。
通过我的建议,我希望并且相信 Laravel 也会对属性做同样
event_date_start
。此外,通过这样做,您不必将日期解析为 Carbon 实例即可将其保存在模型中。
我相信这样就可以了。
$event->event_date_start = $request->event_date_start;
如果您对格式有任何限制,您可以在模型中添加另一个名为
dateFormat
的属性。
protected $dateFormat = 'm/d/Y h:i a';
希望对您有帮助。
参考:https://laravel.com/docs/5.5/eloquent-mutators#date-mutators