【问题标题】:How to using counter in foreach migration table? (laravel 5.3)如何在 foreach 迁移表中使用计数器? (laravel 5.3)
【发布时间】:2017-05-12 11:05:22
【问题描述】:

我的代码是这样的:

<?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)

有没有人可以帮助我?

【问题讨论】:

    标签: php laravel foreach counter laravel-5.3


    【解决方案1】:

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

    $masterLookup-&gt;id = ++$key;

    在行尾使用半列 (;)。

    【讨论】:

      【解决方案2】:

      不要手动添加id。 ID应该是AUTO INCREMENT,所以DB可以自动增加它。迁移中的id 应该这样定义:

      $table->increments('id');
      

      更新

      如果您出于某种原因不想使用increments(),请使用:

      $masterLookup->id = $key;
      

      这应该可行,因为您正在迭代 Eloquent 集合,所以 key 是唯一的。

      【讨论】:

      • 存在这样的错误:Use of undefined constant key - assumed 'key'
      • 使用$key,我不小心删除了$标志
      • 这似乎是正确的,$masterLookup-&gt;id = ++$key; 的顺序是从 1 开始,而不是 0。我的答案只是少了 ;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 1970-01-01
      • 2017-05-07
      • 2017-05-27
      相关资源
      最近更新 更多