Windows上的Alice数据夹具错误

时间:2017-11-09 14:12:10

标签: git symfony nelmio-alice

在我的Windows上,当我从git中拉出/克隆此项目并运行此命令时

 bin/console doctrine:fixtures:load

小心,数据库将被清除。你想继续y / N?y

  

清除数据库>加载AppBundle \ DataFixtures \ ORM \ RequestFixture \ RequestFixture

     

[Symfony的\元器件\调试\异常\ ContextErrorException]     注意:未定义的偏移量:-5

它给了我一个错误。

但是当我在Mac上运行时,一切运行正常。

1 个答案:

答案 0 :(得分:0)

我在使用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实现中的一个错误,但这些只是猜测。