Laravel 5 播种
Laravel 5 Seeding
我正在按照 "Laravel 5 Essentials." 中的教程进行操作 当我尝试使用命令
为我的数据库播种时
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
当我在 Sublime 中加载示例代码时,我注意到 "DB" 有不同的颜色,这让我怀疑这与 DB 命名空间有关。因为我是Laravel的新手,所以我不确定应该在哪里定义DB。
我也试过执行
composer dump-autoload
但这没有用。有谁知道如何解决这个问题?谢谢!
几件事:
听起来您的播种机 class 由于某种原因没有添加到 class 地图中。要检查的地方是 /vendor/composer/autoload_classmap.php 文件。如果您在那里看到 class,它应该可以工作。如果您不这样做,则可能是某个时候更改了名称或出现其他问题,您可能需要手动添加它。
您需要为数据库添加命名空间 class。应该是:
使用Illuminate\Support\Facades\DB;
尝试:
php artisan make:seeder BreedsTableSeeder
详情可查- Laravel seeding
您只需将 use Illuminate\Support\Facades\DB;
添加到 BreedsTableSeeder 文件的顶部。
我正在按照 "Laravel 5 Essentials." 中的教程进行操作 当我尝试使用命令
为我的数据库播种时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 当我在 Sublime 中加载示例代码时,我注意到 "DB" 有不同的颜色,这让我怀疑这与 DB 命名空间有关。因为我是Laravel的新手,所以我不确定应该在哪里定义DB。
我也试过执行
composer dump-autoload
但这没有用。有谁知道如何解决这个问题?谢谢!
几件事:
听起来您的播种机 class 由于某种原因没有添加到 class 地图中。要检查的地方是 /vendor/composer/autoload_classmap.php 文件。如果您在那里看到 class,它应该可以工作。如果您不这样做,则可能是某个时候更改了名称或出现其他问题,您可能需要手动添加它。
您需要为数据库添加命名空间 class。应该是:
使用Illuminate\Support\Facades\DB;
尝试:
php artisan make:seeder BreedsTableSeeder
详情可查- Laravel seeding
您只需将 use Illuminate\Support\Facades\DB;
添加到 BreedsTableSeeder 文件的顶部。