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

时间:2018-02-16 11:59:28

标签: php laravel laravel-5 faker laravel-seeding

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

Call to undefined method Directory::create()

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

<?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,
        ]);
      }
  }
}

3 个答案:

答案 0 :(得分:2)

我认为Directory是一个模型。

<?php

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

答案 1 :(得分:1)

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

<?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'];
 }

答案 2 :(得分:0)

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

sudo apt install php-curl