Laravel 5种子

时间:2015-09-02 20:14:04

标签: php laravel laravel-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 我注意到了&#34; DB&#34;当我在Sublime中加载示例代码时,它有不同的颜色,这让我怀疑这与DB命名空间有关。因为我是Laravel的新手,所以我不确定应该在哪里定义DB。

我也尝试过执行

composer dump-autoload

但这不起作用。有谁知道如何解决这个问题?谢谢!

3 个答案:

答案 0 :(得分:4)

尝试:

php artisan make:seeder BreedsTableSeeder

可以找到详细信息 - Laravel seeding

答案 1 :(得分:0)

一些事情:

  1. 听起来你的播种器类没有因某种原因被添加到类图中。要检查的地方是/vendor/composer/autoload_classmap.php文件。如果你在那里看到你的班级,它应该有效。如果不这样做,那么名称会在某些时候发生变化或出现其他问题,您可能需要手动添加。

  2. 您需要为DB类添加命名空间。它应该是:

    使用Illuminate \ Support \ Facades \ DB;

答案 2 :(得分:0)

您只需将<script> var listCountries = $.masksSort($.masksLoad("https://cdn.rawgit.com/andr-04/inputmask-multi/master/data/phone-codes.json"), ['#'], /[0-9]|#/, "mask"); var maskOpts = { inputmask: { definitions: { '#': { validator: "[0-9]", cardinality: 1 } }, showMaskOnHover: false, autoUnmask: true, clearMaskOnLostFocus: false }, match: /[0-9]/, replace: '#', listKey: "mask" }; var maskChangeWorld = function(maskObj, determined) { if (determined) { var hint = maskObj.name_ru; if (maskObj.desc_ru && maskObj.desc_ru != "") { hint += " (" + maskObj.desc_ru + ")"; } $("#descr_world").html(hint); } else { $("#descr_world").html("Страны мира"); } } $('#phone_world').inputmasks($.extend(true, {}, maskOpts, { list: listCountries, onMaskChange: maskChangeWorld })); function hello(){ alert('hi'); } </script> 添加到 BreedsTableSeeder 文件的顶部即可。