2017-03-07 4 views
1

그래서 나는 언어 표 (LanguageTableSeeder)의 시더를했다. 나는 고개를 사전은 UsersTabeSeeder를 제공 및 변경 내 LanguageTableSeeder 동일한 형식 마하 :Laravel 파종 결과

DB::table('languages')->delete(); 

$languages = [ 
    [ 
     'name' => 'English', 
     'flag' => '', 
     'abbr' => 'en', 
     'script' => 'Latn', 
     'native' => 'English', 
     'active' => '1', 
     'default' => '1', 
    ], 
]; 

foreach ($languages as $language){ 
    Language::create($language); 
} 

이것은 또한 created_at 결과와 updated_at 필드 내 데이터를 사용자 표에서 찾아 볼 때 때문에 홀수 인는 null을 그들은 created_atupdated_at 필드가 시더를 실행하는 정확한 시간에 설정되어야합니다.

여기 내 질문이 있습니다. 왜 이런 일이 일어나는 걸까요? 다음을 사용해야합니다 :

'created_at' => date("Y-m-d H:i:s"), 
'updated_at' => date("Y-m-d H:i:s"), 

시딩 할 때 채워지는 타임 스탬프를 얻으려면?

답변

1
당신이 UserTableSeeder 같은 씨앗을 자동 생성에서 본 것처럼 당신이 (비 웅변 기능

DB::table('languages')->insert([ 
    'name'  => 'English', 
    'flag'  => '', 
    'abbr'  => 'en', 
    'script' => 'Latn', 
    'native' => 'English', 
    'active' => '1', 
    'default' => '1', 
    'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 
    'updated_at' => Carbon::now()->format('Y-m-d H:i:s') 

]); 

을 위해 아래와 같이 수동으로 할 필요가 또는 설득력을 할 수 있도록

자동 타임 스탬프 절약 웅변 기능만을위한 것입니다)

$language = new Language(); 
    $language ->name = 'English'; 
    $language->flag' = '', 
    $language ->abbr = 'en', 
    $language->script ='Latn', 
    $language->native ='English', 
    $language->active ='1', 
    $language->default ='1', 
    $language->save(); 

왜 탄소를 사용해야합니까? Eloquent는 datetime 및 timestamp 열에 Carbon을 제공합니다. 기본적으로 created_at, updated_at 및 deleted_at 열에 대해 Carbon을 제공합니다. Eloquent \ Model을 확장 한 모델에서이를 사용자 정의 할 수 있습니다.

Carbon\Carbon extends \DateTime이므로 Carbon을 사용하여 DateTime을 사용하면 기능이 손실되지 않으므로 더 많은 이점/유연성이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 왜 PHP의'date' 함수 대신'Carbon' 패키지를 사용해야합니까? 왜 'UsersTableSeeder'가 위에서 언급 한 방법을 사용하지 않고 timestamp를 설정하는지? – Jhivan

+0

당신의 사용자 테이블이 $ user = new User();와 같이 씨앗에 능숙하게 저장 될 수 있습니다. $ user-> name = '최고 관리자'; $ user-> email = '[email protected]'; $ user-> save(); – sumit

+0

내 편집 된 답변보기, 당신이 지금 분명 희망이 – sumit