2016-07-05 2 views
0

에서 반환 된 값을 수정합니다. 따라서 모델 내에 정의 된 메서드가없는 Post 모델이 있습니다.항상 laravel 모델

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

이 잘 작동하지만 지금은 그 요구에서 반환 된 날짜 열을 포맷 할 모든 시간 : 컨트롤러에서

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

use DB; 

class Post extends Model 
{ 

} 

는, 내가 좋아하는 그 모델에 전화를 걸거나 그 모델이 호출됩니다. 새 메서드를 정의하지 않고 반환 된 배열을 수정할 수있는 방법이 있습니까?

저는 Laravel에 새로운 도움을 주셔서 감사합니다. 모델이 true로 $timestamps 세트가 있으면 그냥 ... 프레임 워크 내에서 일을하는 가장 효율적인 방법을 알아 내기 위해

+0

여기에서 찾고있는 것을 찾을 수 있습니다. [돌연변이] (https://laravel.com/docs/5.1/eloquent-mutators) –

답변

1

을 시도하는 created_atupdated_at 필드는 기본적으로 Carbon 예입니다.

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

Carbon 경우 당신이하고자하는 경우가 http://carbon.nesbot.com

에서 볼 수 있듯이 당신이 광범위한 API를 활용할 수 :

이것은 당신이 기본적인 예로서 다음과 같이 뷰에서 날짜를 포맷 할 수 있습니다 의미 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