在视图刀片Laravel上添加Carbon格式d-M-Y

时间:2019-06-23 04:48:38

标签: php laravel laravel-5 format laravel-5.8

我有数据,想在视图中进行解析。

表名称为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 |
+--+------------+-------+-----------+----------+-------------------+--------------------+

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

我需要为Controller或模型添加什么?

我的模特:

<?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]);
}

1 个答案:

答案 0 :(得分:0)

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

来自docs

  

根据属性自定义日期格式

     

您可以自定义个别口才日期的序列化格式   通过在类型转换声明中指定日期格式来设置属性:

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

所以就您而言。

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

Training.php

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

这应该返回如下内容:

  

“ 2019年6月23日”

您可以在Tinker中对其进行检查:

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

=> "23-June-2019"