問題描述
我是 Laravel 的新手.我正在使用 Laravel 創建一個應用程序.當我創建帖子時,created_at"和updated_at"的值如下所示:
I am new in Laravel. I am creating a application with laravel. When i creating a post then the values of "created_at" and 'updated_at" are look like this:
2014-06-26 04:07:31
2014-06-26 04:07:31
但我希望沒有時間的這些值看起來像這樣:
But i want this values without time look like this :
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');
}
}
我的郵政控制器商店:
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
模型中添加兩??個這樣的訪問器方法:
In your Post
model add two accessor methods like this:
public function getCreatedAtAttribute($date)
{
return CarbonCarbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d');
}
public function getUpdatedAtAttribute($date)
{
return CarbonCarbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m-d');
}
現在,每次您使用模型中的這些屬性來顯示日期時,這些都會以不同的方式呈現,只是不帶時間的日期,例如:
Now every time you use these properties from your model to show a date these will be presented differently, just the date without the time, for example:
$post = Post::find(1);
echo $post->created_at; // only Y-m-d formatted date will be displayed
因此您無需更改數據庫中的原始類型.要更改數據庫中的 type
,您需要將其從 Timestamp
更改為 Date
并且您需要從遷移中進行(如果您使用完全)或直接進入您的數據庫,如果您不使用遷移.timestamps()
方法添加這些字段(使用 Migration),要在遷移期間更改這些字段,您需要刪除 timestamps()
方法并使用 date()
代替,例如:
So you don't need to change the original type in the database. to change the type
in your database you need to change it to Date
from Timestamp
and you need to do it from your migration (If your using at all) or directly into your database if you are not using migration. The timestamps()
method adds these fields (using Migration) and to change these fields during the migration you need to remove the timestamps()
method and use date()
instead, for example:
$table->date('created_at');
$table->date('updated_at');
這篇關于如何更改 created_at 和 updated_at 值 laravel 的默認格式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!