2016-07-05 35 views
0

所以我有一個模型,Post沒有定義方法。總是修改從laravel模型返回的值

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

use DB; 

class Post extends Model 
{ 

} 

從控制器,我作出這個模型調用,如:

return view('pages.post', ['post' => Post::where('url_route', '=', $url_route)->first()]

這工作得很好,但我現在想格式化是從該請求返回的日期欄,每次該模型被稱爲。有沒有辦法修改返回的數組而不定義一個新的方法?

我是Laravel的新人,感謝您的幫助。只是想弄清楚的框架內做事情的最有效的方式...

+0

你可以在這裏找到你要找的東西[Mutators](https://laravel.com/docs/5.1/eloquent-mutators) –

回答

1

如果模型$timestamps設置爲true,則created_atupdated_at領域是本地一個Carbon實例。

這意味着你可以作爲一個基本的例子格式化日期視圖這樣的:

$post->updated_at->format('Y-m-d H:i:s') 

Carbon情況下,您可以充分利用其廣泛的API,你可以在http://carbon.nesbot.com

看到,如果您喜歡比created_atupdated_at以外的其他領域做同樣的,你可以在模型中添加額外的屬性:

protected $dates = ['added_on'] 

您在數組中指定的字段將被視爲Carbon實例。

+0

哦,太棒了,不知道!是的,我打算用碳來修飾它們,哈哈。 – ambe5950

+1

另外我相信不是'getDates()',你可以創建一個像'protected $ dates = ['added_on']'這樣的屬性。 – user2094178

+0

@ user2094178重寫'$ dates'屬性是正確的/預期的方式。如果您重寫了'getDates()'方法,您的'created_at'和'updated_at'字段將不再是Carbon實例。 – patricus