2017-01-23 16 views
3

私は、立ち上げ時にデータベースに格納する必要があるデータのために、まともな量のシードを設定することができました。デフォルトの日付でDATEフィールドをシードする必要があるまでは、すべてが簡単でうまくいきました。Laravel 5.3に日付フィールドをシードする方法は?

私は私がこのそれを修正する必要があります追加すると言われてきたが、それはしませんでした私のモデルでは、次の...

DatabaseSeeder.php

class SettingsTableSeeder extends Seeder { 
    public function run() 
    { 
     Setting::create([ 
      'name' => 'Start Date', 
      'date' => '2000-01-01' 
     ]); 
    } 
} 

を試してみました。

Setting.php

protected $dates = [ 
    'created_at', 
    'updated_at', 
    'date' 
]; 

毎回私はそれがエラースローシーダ実行するために行く:私はそれが変化した日付の前後に引用符を削除した場合

[InvalidArgumentException] 
The separation symbol could not be found 
Unexpected data found. 
Trailing data 

を..

[InvalidArgumentException] 
The separation symbol could not be found 
Data missing 

Dのデフォルト値をシードする方法ATEデータベースフィールド?

答えて

4

date$dates配列である場合は、文字列の代わりにカーボンインスタンスを挿入します。

Setting::create([ 
    'name' => 'Start Date', 
    'date' => Carbon::parse('2000-01-01') 
]); 

あなたはCarbonは、ファイルの先頭に使用するために利用されていることを確認する必要があります

use Carbon\Carbon; 

Laravel/Composerによって自動読み込みされます。

+0

私は@Alexey Mezeninに同意します – Gayan

+0

これは依然として "InvalidArgumentException、分離記号が見つかりませんでした。予期しないデータが見つかりました。私はそれを正確にコピーして貼り付けた。私はCreateコールの中でCarbonを使うことはできませんが、DB :: table insert callの中でそれを使用することができます。 – Octoxan

+0

@Octoxan 'parse()'メソッドはあなたにこのエラーを与えることはできません –

0

だけアレクセイMezeninとJaymin Panchalによって与えられた答えはまだスローされ、後続のデータエラーになった両方のCarbon

、などの
class SettingsTableSeeder extends Seeder { 
    public function run(){ 
     Setting::create([ 
     'name' => 'Start Date', 
     'date' => \Carbon\Carbon::createFromDate(2000,01,01)->toDateTimeString() 
     ]); 
    } 
} 
0

を使用してdateを挿入してみてください。

何がDatabaseSeeder.phpファイルの先頭に

use Carbon\Carbon; 

...含めた私のために働くことになりました。私は、標準モデルとカーボンを使用することはできません::メソッドを作成播種しながら、何らかの理由でその後、私の設定を変更する

::に作成...

DB::table('settings')->insert([ 
    'name' => 'Start Date', 
    'date' => Carbon::create('2000', '01', '01') 
]); 

が、それはDBのために働く::テーブル( 'table') - > insertを実行します。

+0

あなたはどんな誤りを言っていますか?私はちょうど私のソリューションをテストして、それは完全に動作します。 –

+0

あなたのソリューションを正確に実行すると、何らかの理由で私のために後続データエラーが発生します。正確にコピーして貼り付けます。 =/ – Octoxan

+0

まあ、うまくいきます。 'parse()'はあなたにこのエラーを与えることはできません。 –

関連する問題