【问题标题】:laravel seeding returns undefined indexlaravel 播种返回未定义的索引
【发布时间】:2019-09-08 11:58:04
【问题描述】:

我有这个迁移:

public function up()
{
    Schema::create('countries', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name_en')->default('');
        $table->string('name_de')->default('');
        $table->string('alpha_2')->default('');
        $table->string('alpha_3')->default('');
    });
}

还有这个播种机

$countries = [
            0 => [
                "name_en" => 'Afghanistan',
                "name_de" => 'Afghanistan',
                "alpha_2" => 'af',
                "alpha_3" => 'afg'
            ],
            1 => [
                "name_en" => 'Albania',
                "name_de" => 'Albanien',
                "alpha_2_en" => 'al',
                "alpha_3_en" => 'alb',
            ],
            2 => [
                "name_en" => 'Algeria',
                "name_de" => 'Algerien',
                "alpha_2_en" => 'dz',
                "alpha_3_en" => 'dza',
            ] ......

然后像这样运行它:

foreach ($countries as $arr) {

            DB::table('countries')->insert([
                'name_en' => $arr['name_en'],
                'name_de' => $arr['name_de'],
                'alpha_2' => $arr['alpha_2'],
                'alpha_3' => $arr['alpha_3']
            ]);
        }

奇怪的是,它确实在第一行阿富汗播种了所有条目,但它返回一个错误,说“未定义索引:alpha_2” 我不知道为什么,如果我删除 alpha_2 和 alpha_3 它可以工作,我什至尝试更改名称,因为也许 alpha 是一个受限制的词,直到现在还没有运气。 知道为什么吗? :/

【问题讨论】:

  • 您在第二个、第三个 ... 元素中使用了 alpha_2_enalpha_3_en
  • 天哪,非常感谢你..

标签: mysql laravel seeding


【解决方案1】:

这是因为您在 countries 数组的第二个和第三个元素中有索引名称 alpha_2_enalpha_3_en。然后您尝试在 foreach 循环中使用像 alpha_2alpha_3 这样的索引。这就是导致错误的原因。更新您的 countries 数组。

$countries = [
            0 => [
                "name_en" => 'Afghanistan',
                "name_de" => 'Afghanistan',
                "alpha_2" => 'af',
                "alpha_3" => 'afg'
            ],
            1 => [
                "name_en" => 'Albania',
                "name_de" => 'Albanien',
                "alpha_2" => 'al',
                "alpha_3" => 'alb',
            ],
            2 => [
                "name_en" => 'Algeria',
                "name_de" => 'Algerien',
                "alpha_2" => 'dz',
                "alpha_3" => 'dza',
            ] ......

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 2018-10-10
    • 1970-01-01
    • 2019-10-06
    • 2015-09-27
    • 2018-08-02
    • 2012-08-24
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多