我正在運行 Laravel 5.8 并在播種時收到此錯誤Seeding: CategoriesTableSeederErrorException : implode(): 在不推薦使用數組后傳遞膠水字符串。交換參數在 /Users/saly/Sites/Saly/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php:9591|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 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.該應用程序使用 PHP 7.3 和 7.2 在 CI 中通過測試很好,所以問題可能是我的本地機器“OSX”中的 PHP 7.4這是我的種子文件<?phpuse Saly\Category;use Illuminate\Database\Seeder;class CategoriesTableSeeder extends Seeder{ /** * Run the database seeds. * * @return void */ public function run() { factory(Category::class, 3)->create(); }}還有工廠<?phpuse Saly\Category;use Faker\Generator as Faker;$factory->define(Category::class, function (Faker $faker) { $name = $faker->sentence(4, true); // Here maybe? return [ 'name' => $name, 'slug' => sluggify($name), ];});我認為問題出在sentence()使用的那一行,但我不知道如何解決它,因為我只是從 Faker 文檔中復制了該行這個錯誤是什么意思,我該如何解決?
4 回答

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
這已經在最新版本的 Faker 中得到修復。在你的錯誤中它說
> 95| return implode($words, ' ') . '.';
但是如果我們查看源代碼的第 95 行,我們會看到:
> 95| return implode(' ', $words) . '.';
所以,你需要做的就是拉取最新版本的 Faker,可能通過這樣做
composer update fzaninotto/faker

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
您可以交換(使用命令影響行implode
)膠水和數組。
例子:
return implode($words,' ') . '.';
至
return implode(' ',$words) . '.';
此外,最新版本的fzaninotto/faker
軟件包解決了這個問題。

aluckdog
TA貢獻1847條經驗 獲得超7個贊
我正在使用 php 7.4 和 apache2,mariadb 10,yii2 高級。使用以下命令更新您的偽造者
composer update fzaninotto/faker
和
sudo service apache2 reload
然后它:這個錯誤和
錯誤(#32)
發生內部服務器錯誤。
上述錯誤發生在 Web 服務器正在處理您的請求時。
如果您認為這是服務器錯誤,請與我們聯系。謝謝你。
修復問題。
- 4 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消