Вызов неопределенного метода Directory::create() при заполнении в Laravel

Я пытаюсь заполнить базу данных в Laravel. Я использую фейкер для заполнения базы данных, но получаю следующую ошибку.

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

person AltBrian    schedule 16.02.2018    source источник
comment
Покажи свой Directory класс. Это модель, расширяющая красноречивую модель?   -  person The Alpha    schedule 16.02.2018


Ответы (3)


Вам нужно использовать модель в верхней части файла

<?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'];
 }
person Mahdi Younesi    schedule 16.02.2018

Я думаю, что Directory здесь модель.

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
use App\Directory;
....
person sumit sharma    schedule 16.02.2018
comment
Я только что запустил это, и теперь я получаю следующую ошибку в своей модели. - person AltBrian; 16.02.2018
comment
моя модель выглядит следующим образом: class Directory extends Model { protect $fillable = ['name', 'number']; } - person AltBrian; 16.02.2018
comment
protect должно быть protected - person sumit sharma; 16.02.2018

У меня есть подобный опыт. Убедитесь, что Php Curl установлен и включен, прежде чем выполнять какие-либо начальные операции. Вы можете установить и включить, введя следующую команду.

sudo apt install php-curl
person Ahmad Sharif    schedule 10.12.2019