Я следую учебнику в «Основах 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
но это не сработало. Кто-нибудь знает, как решить эту проблему? Спасибо!
Пара вещей:
Похоже, ваш класс сеялки по какой-то причине не был добавлен в карту классов. Место для проверки — файл /vendor/composer/autoload_classmap.php. Если вы видите там свой класс, он должен работать. Если вы этого не сделаете, то в какой-то момент произойдет смена имени или что-то другое, и вам может понадобиться добавить его вручную.
Вам нужно будет добавить пространство имен для класса DB. Так должно быть :
использовать Освещение \ Поддержка \ Фасады \ БД;
Вам просто нужно добавить use Illuminate\Support\Facades\DB;
к вершине вашего BreedsTableSeeder файл.