运行 Laravel 播种机时数组到​​字符串的转换错误

问题描述

运行播种机时出现 ErrorException Array to string conversion 错误

PHP artisan db:seed --class=StudentSeeder

在我对 StudentFactory.PHP 进行更改之前它工作正常,我只是更改了所有伪造者,我不知道是哪一个造成了这个麻烦。

<?PHP

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
use App\Models\Student;

class StudentFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Student::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function deFinition()
    {
        return [
            'student_name' => $this->faker->name('male'),'cpr' => $this->faker->creditCardNumber,'email' => $this->faker->safeEmail,'mobile' => $this->faker->e164PhoneNumber,'mobile2' => $this->faker->e164PhoneNumber,'dob' => $this->faker->date(),'address' => $this->faker->address,'live_inـstate' => $this->faker->randomElement(["UNKNowN","OWN","RENT"]),'relationshipـstate' => $this->faker->randomElement(["UNKNowN","SINGLE","MARRIED","DIVORCED"]),'family_members' => $this->faker->randomNumber(),'family_depends' => $this->faker->randomNumber(),'degree' => $this->faker->text,'hawzaـhistory' => $this->faker->boolean,'hawzaـhistory_details' => $this->faker->paragraphs,'healthـhistory' => $this->faker->boolean,'healthـhistory_details' => $this->faker->paragraphs,'financialـstate' => $this->faker->randomElement(["UNKNowN","POOR","AVERAGE","GOOD","EXCELLENT"]),'financial_details' => $this->faker->paragraphs,'student_notes' => $this->faker->paragraphs,'registration_at' => $this->faker->date(),];
    }
}

完整的控制台错误

ErrorException 

  Array to string conversion

  at vendor/laravel/framework/src/Illuminate/Support/Str.PHP:494
    490▕ 
    491▕         $result = array_shift($segments);
    492▕ 
    493▕         foreach ($segments as $segment) {
  ➜ 494▕             $result .= (array_shift($replace) ?? $search).$segment;
    495▕         }
    496▕ 
    497▕         return $result;
    498▕     }

      +17 vendor frames 
  18  database/seeders/StudentSeeder.PHP:17
      Illuminate\Database\Eloquent\Factories\Factory::create()

      +22 vendor frames 
  41  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

解决方法

将所有出现的 $this->faker->paragraphs 更改为 $this->faker->paragraphs(3,true)

paragraphs 格式化程序 uncheck auto dim on battery。第二个参数 true 表示应该返回一个字符串而不是一个数组。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...