首页 > 解决方案 > 在视图刀片 Laravel 上添加 Carbon Format dMY

问题描述

我有数据并想在视图中解析。

表名称是training,它正在解析为如下视图:

+--+------------+-------+-----------+----------+-------------------+--------------------+
|id|name        |user_id|no_training|date      |created_at         |updated_at          |
+--+------------+-------+-----------+----------+-------------------+--------------------+
|1 |software dev|3      |198734-2445|2018-06-20|2019-06-19 19:30:40|2019-06-19 19:30:40 |
+--+------------+-------+-----------+----------+-------------------+--------------------+

我想解析视图,以便“日期”不是,2019-06-19而是19-June-201919-Juni-2019 (Indonesian(id) Time)

我需要为我的控制器或模型添加什么?

我的模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Training extends Model
{
    protected $table = 'training';

    protected $fillable = [
        'user_id','name','no_training','date',
    ];

    public function users()
    {
        return $this->belongsTo(\App\User::class ,'user_id');

    }
}

我的控制器:

public function training()
{
    $training = Training::with('users')->get();

    return view('admin.training',['training' => $training]);
}

标签: phplaravellaravel-5formatlaravel-5.8

解决方案


您可以在训练模型中定义一些变异器。

文档

自定义每个属性的日期格式

您可以通过在 cast 声明中指定日期格式来自定义各个 Eloquent 日期属性的序列化格式:

protected $casts = [
    'birthday' => 'date:Y-m-d',
    'joined_at' => 'datetime:Y-m-d H:00',
];

所以在你的情况下..

如果您将其存储date在日期列 ( Date/ DateTime) 中,您可以执行以下操作:

培训.php

protected $casts = [
    'date' => 'date:d-F-Y',
];

这应该返回类似:

“2019 年 6 月 23 日”

您可以在Tinker中查看:

$ php artisan tinker
> now()->format('d-F-Y');

=> "23-June-2019"

推荐阅读