Laravel 5 Seeding

Я следую учебнику в «Основах Laravel 5». Когда я пытаюсь заполнить свою базу данных командой

php artisan db:seed

Я получаю ошибку

[ReflectionException]
Class BreedsTableSeeder does not exist

Код для BreedsTableSeeder определен ниже:

<?

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class BreedsTableSeeder extends Seeder {

public function run()
{
DB:table('breeds')->insert([
['id' => 1, 'name' => "Domestic"],
['id' => 2, 'name' => "Persian"],
['id' => 3, 'name' => "Siamese"],
['id' => 4, 'name' => "Abyssinian"],
]);
}
}

DatabaseSeeder определяется так:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();

// $this->call(UserTableSeeder::class);
$this->call('BreedsTableSeeder');
}
}

1
Я заметил, что «DB» имеет другой цвет, когда я загружаю пример кода в Sublime, что заставляет меня подозревать, что это как-то связано с пространством имен DB. Поскольку я новичок в Laravel, я не уверен, где следует определять DB.

Я также пытался выполнить

composer dump-autoload

но это не сработало. Кто-нибудь знает, как решить эту проблему? Спасибо!

5

Решение

Пытаться:

php artisan make:seeder BreedsTableSeeder

Подробности можно найти — Laravel seeding

3

Другие решения

Пара вещей:

  1. Похоже, ваш класс сеялки по какой-то причине не был добавлен в карту классов. Место для проверки — файл /vendor/composer/autoload_classmap.php. Если вы видите там свой класс, он должен работать. Если вы этого не сделаете, то в какой-то момент произойдет смена имени или что-то другое, и вам может понадобиться добавить его вручную.

  2. Вам нужно будет добавить пространство имен для класса DB. Так должно быть :

    использовать Освещение \ Поддержка \ Фасады \ БД;

0

Вам просто нужно добавить use Illuminate\Support\Facades\DB; к вершине вашего BreedsTableSeeder файл.

0
По вопросам рекламы [email protected]