我正在运行 Laravel 5.8 并在播种时出现此错误
Seeding: CategoriesTableSeeder
Run Code Online (Sandbox Code Playgroud)
ErrorException : implode(): 在数组被弃用后传递胶水字符串。交换参数
在 /Users/saly/Sites/Saly/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php:95
91|
92| $words = static::words($nbWords);
93| $words[0] = ucwords($words[0]);
94|
95| return implode($words, ' ') . '.';
96| }
97|
98| /**
99| * Generate an array of sentences
Run Code Online (Sandbox Code Playgroud)
Exception trace:
1 implode(" ")
/Users/saly/Sites/Saly/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php:95
2 Faker\Provider\Lorem::sentence()
/Users/saly/Sites/Saly/vendor/fzaninotto/faker/src/Faker/Generator.php:222
> Please use the argument -v to see more details.
Run Code Online (Sandbox Code Playgroud)
该应用程序使用 PHP 7.3 和 7.2 在 CI 中通过测试就好了,所以问题可能是我的本地机器“OSX”中的 PHP 7.4
这是我的种子文件
Seeding: CategoriesTableSeeder
Run Code Online (Sandbox Code Playgroud)
还有工厂
91|
92| $words = static::words($nbWords);
93| $words[0] = ucwords($words[0]);
94|
95| return implode($words, ' ') . '.';
96| }
97|
98| /**
99| * Generate an array of sentences
Run Code Online (Sandbox Code Playgroud)
我认为问题出在使用的那一行,sentence()但我不知道如何解决它,因为我只是从 Faker 文档中复制了该行
这个错误是什么意思,我该如何解决?
dav*_*ave 45
这已经在最新版本的 Faker 中得到修复。在你的错误中它说
> 95| return implode($words, ' ') . '.';
Run Code Online (Sandbox Code Playgroud)
但是如果我们查看源代码的第 95 行,我们会看到:
> 95| return implode(' ', $words) . '.';
Run Code Online (Sandbox Code Playgroud)
所以,你需要做的就是拉取最新版本的 Faker,可能是这样做
composer update fzaninotto/faker
Run Code Online (Sandbox Code Playgroud)
小智 9
您可以交换(在implode命令的影响行中)胶水和数组。
例子:
return implode($words,' ') . '.';
Run Code Online (Sandbox Code Playgroud)
到
return implode(' ',$words) . '.';
Run Code Online (Sandbox Code Playgroud)
此外,最新版本的fzaninotto/faker软件包解决了这个问题。
| 归档时间: |
|
| 查看次数: |
43887 次 |
| 最近记录: |