在 Laravel 中播种时调用未定义的方法 Directory::create()

Call to undefined method Directory::create() when seeding in Laravel

我正在尝试在 Laravel 中播种数据库。我正在使用 faker 为数据库播种,但出现以下错误。

Call to undefined method Directory::create()

下面是我在 table 种子文件中编写的代码。基本上,我想创建一个包含姓名和电话号码的种子。 下面是我写的代码。

<?php

 use Illuminate\Database\Seeder;
 use Faker\Factory as Faker;

class DirectoriesTableSeeder extends Seeder
{
   /**
   * Run the database seeds.
  *
   * @return void
  */
 public function run()
  {
       //Directory::truncate();
       $faker = \Faker\Factory::create();
      for ($i = 0; $i < 50; $i++) {
        Directory::create([
            'name' => $faker->name,
            'number' => $faker->PhoneNumber,
        ]);
      }
  }
}

我认为Directory是这里的典范。

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
use App\Directory;
....

您需要使用文件顶部的模型

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
use App\Directory;

或者使用命名空间调用模型

App\Directory::create([
        'name' => $faker->name,
        'number' => $faker->PhoneNumber,
]);

并在模型

中编辑您的$fillable属性定义

应该是protected而不是protect

 class Category extends Model
 {
    protected $fillable = ['name', 'number'];
 }

我也有类似的经历。在执行任何种子操作之前,请确保已安装并启用 Php Curl。您可以通过键入以下命令来安装和启用。

sudo apt install php-curl