2016-12-28 16 views
3

私のコードは次のようである:foreachの移行テーブルでカウンタを使用する方法は? (laravel 5.3)

<?php 

use Illuminate\Database\Seeder; 
use Illuminate\Database\Eloquent\Model; 
use App\Models\Akun; 
use App\Models\Master_lookup; 

class MasterLookupsTableSeeder extends Seeder 
{ 
    public function run() 
    { 
     foreach (Akun::all() as $key => $value) { 
      $masterLookup = new Master_lookup; 
      $masterLookup->id   = ++$key 
      $masterLookup->parent_id = NULL; 
      $masterLookup->code   = $value->kdakun; 
      $masterLookup->name   = $value->nmakun; 
      $masterLookup->type   = 'akun'; 
      $masterLookup->information = json_encode($value->kdjenbel); 
      $masterLookup->save(); 
     } 
    } 
} 

私は

に対抗するために、インデックス$keyを使用しますが、実行されたときに、存在してエラーがある:

[Symfony\Component\Debug\Exception\FatalThrowableError] 
    Parse error: syntax error, unexpected '$masterLookup' (T_VARIABLE) 

は誰任意の人々があります私を助けることができますか?

答えて

3

idを手動で追加しないでください。 IDはAUTO INCREMENTである必要があります.DBは自動的にそれを増やすことができます。移行中id次のように定義する必要があります。これは動作するはず

$masterLookup->id = $key; 

:あなたはこのを使用し、何らかの理由でincrements()を使用しない場合

$table->increments('id'); 

UPDATE

あなたがEloquentコレクションを繰り返しているので、keyはユニークです。

+0

私はそれを知っています。しかし、私の場合、手動でIDを設定する必要があります –

+0

更新された答えをお読みください。 –

+0

このようなエラーがあります: '定義されていない定数キーの使用 - 想定された 'key'' –

0

コードでは、行の最後に半角を追加していませんでした。

$masterLookup->id = ++$key;

使用半カラム(;)行の末尾。

関連する問題