gpt4 book ai didi

php - 如何更改 created_at 和 updated_at 值 laravel 的默认格式

转载 作者:IT王子 更新时间:2023-10-29 01:19:36 25 4
gpt4 key购买 nike

我是 Laravel 的新手。我正在使用 laravel 创建一个应用程序。当我创建帖子时,“created_at”和“updated_at”的值如下所示:

2014-06-26 04:07:31
2014-06-26 04:07:31

但我希望这个没有时间的值看起来像这样:

2014-06-26
2014-06-26

只有日期没有时间。

这可能吗???

请帮帮我。

我的帖子模型:

<?php

class Post extends \Eloquent {

protected $fillable = array('title', 'body', 'meta','reporter', 'slug', 'image','top');

public static $rules = array(
'title'=>'required|min:2',
'body'=>'required|min:20',
'reporter'=> 'required|min:2',
'image'=>'image|mimes:jpeg,jpg,bmp,png,gif'
);

public function categories()
{
return $this->belongsToMany('Category');
}

}

我的 Post Controller 商店:

public function store()
{
$validator = Validator::make(Input::all(), Post::$rules);

if ($validator->passes()) {
$post = new Post;
$post->title = Input::get('title');
$post->body = Input::get('body');
$post->reporter = Input::get('reporter');
$post->meta = Input::get('meta');
$post->slug = Input::get('title');
$post->top = Input::get('top');

$image = Input::file('image');
if ($image) {
$filename = date('Y-m-d-H:i:s')."-".$image->getClientOriginalName();
Image::make($image->getRealPath())->resize(250, 145)->save('public/images/postimages/'.$filename);
$post->image = 'images/postimages/'.$filename;
}


$categories = Input::get('categories');

$post->save();

$post->categories()->sync($categories);

return Redirect::route('admin.posts.index')
->with('message', 'Product Created');
}

return Redirect::back()
->with('message', 'Something went wrong')
->withErrors($validator)
->withInput();
}

请帮助我。

最佳答案

在您的 Post 模型中添加两​​个访问器方法,如下所示:

public function getCreatedAtAttribute($date)
{
return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d');
}

public function getUpdatedAtAttribute($date)
{
return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d');
}

现在,每次您使用模型中的这些属性来显示日期时,这些都会以不同的方式呈现,只是没有时间的日期,例如:

$post = Post::find(1);
echo $post->created_at; // only Y-m-d formatted date will be displayed

因此您不需要更改数据库中的原始类型。要更改数据库中的 type,您需要将其从 Timestamp 更改为 Date 并且您需要从迁移中执行此操作(如果您使用根本没有)或直接进入你的数据库,如果你不使用迁移。 timestamps() 方法添加这些字段(使用迁移)并在迁移期间更改这些字段,您需要删除 timestamps() 方法并使用 date( ) 而不是,例如:

$table->date('created_at');
$table->date('updated_at');

关于php - 如何更改 created_at 和 updated_at 值 laravel 的默认格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com