如何在foreach迁移表中使用计数器? (laravel 5.3)

时间:2016-12-28 07:31:31

标签: php laravel foreach counter 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)

有没有人可以帮助我?

2 个答案:

答案 0 :(得分:3)

请勿手动添加id。 ID应为AUTO INCREMENT,因此DB可以自动增加它。迁移中的id应该像这样定义:

$table->increments('id');

<强>更新

如果您因某些原因不想使用increments(),请使用此功能:

$masterLookup->id = $key;

这应该有效,因为您正在迭代Eloquent集合,因此key是唯一的。

答案 1 :(得分:0)

在您的代码中,您没有在行尾添加半列。

$masterLookup->id = ++$key;

在行尾使用半列(;)。