我正在关注" 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
但这不起作用。有谁知道如何解决这个问题?谢谢!
答案 0 :(得分:4)
答案 1 :(得分:0)
一些事情:
听起来你的播种器类没有因某种原因被添加到类图中。要检查的地方是/vendor/composer/autoload_classmap.php文件。如果你在那里看到你的班级,它应该有效。如果不这样做,那么名称会在某些时候发生变化或出现其他问题,您可能需要手动添加。
您需要为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 文件的顶部即可。