在我的Windows上,当我从git中拉出/克隆这个项目并运行此命令时
bin/console doctrine:fixtures:load
小心,数据库将被清除。你想继续y / N吗?
清除数据库>加载AppBundle \ DataFixtures \ ORM \ RequestFixture \ RequestFixture
[Symfony \ Component \ Debug \ Exception \ ContextErrorException]注意:未定义的偏移量:-5
它给了我一个错误。
但是当我在我的Mac上运行时,一切运行正常。
我在使用XAMPP,PHP 7.2.0和Symfony 4的Windows上遇到同样的问题。我把错误指向了vendor\fzaninotto\faker\src\Faker\Provider\Base.php
。在Base::randomElements
内部有以下声明:
$num = mt_rand(0, $highKey);
看起来$num
用于从传递给Base::randomElements
的伪数据数组中选择一个随机项,然后将其添加到返回的$elements
数组中。
在你的情况下,对mt_rand
的调用是返回-5
。偏移量-5
未在数组上定义,该数组期望正数作为偏移量。
我能弄清楚的是,mt_rand(0, $highKey)
实际上是在-$highKey/2
和+$highKey/2
之间返回一个数字。此外,每次调用该方法时,它始终生成完全相同的数字。
我无法弄清楚为什么mt_rand(0, $highKey)
产生负数。可能是发电机播种不当,或者它可能是mt_rand
实施中的一个错误,但那些只是在这一点上疯狂的猜测。