0

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

 bin/console doctrine:fixtures:load

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

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

[Symfony\Component\Debug\Exception\ContextErrorException] 注意:未定义的偏移量:-5

它给了我一个错误。

但是当我在我的 Mac 上做这件事时,一切都运行良好。

4

1 回答 1

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/2and之间的数字+$highKey/2。此外,每次调用该方法时,它总是生成完全相同的数字。

我无法弄清楚我们为什么mt_rand(0, $highKey)会产生负数。可能是生成器的种子不正确,或者可能是 的实现中的错误mt_rand,但此时这些只是疯狂的猜测。

于 2017-12-28T18:18:31.017 回答