Am running Laravel 5.8 and getting this error when seeding
Seeding: CategoriesTableSeeder
ErrorException : implode(): Passing glue string after array is deprecated. Swap the parameters
at /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
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.
The app is passing tests just fine in CI using PHP 7.3 and 7.2 so the problem might be PHP 7.4 in my local machine "OSX"
Here's my seed file
<?php use Saly\Category; use Illuminate\Database\Seeder; class CategoriesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { factory(Category::class, 3)->create(); } }
And the factory
<?php use 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), ]; });
I think the problem is in the line where sentence()
is used but I can't tell how to solve it because I just copied that line from the Faker docs
What does this error mean and how can I solve it?
This has already been fixed in the most recent version of Faker. In your error it says
> 95| return implode($words, ' ') . '.';
but if we look at line 95 of the source we see:
> 95| return implode(' ', $words) . '.';
So, all you need to do is pull the latest version of Faker, probably by doing
composer update fzaninotto/faker
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With