Laravel php artisan db:种子导致"使用"声明错误

时间:2015-06-27 11:35:27

标签: php laravel laravel-5 artisan

当我尝试运行php artisan db:seed时,我收到以下错误:

The use statement with non-compound name 'DB' has no effect

我已根据snippet from the doc编写了我自己的播种文件,其中包含以下内容。正如您所看到的,我正在使用use DB快捷方式 - 这就是问题所在吗?

<?php

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

class ClassesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('classes')->delete();
        DB::table('classes')->insert([
            'class_name'    => 'Test course 111',
            'class_id'      => '1',
            'location_name' => 'Barnes',
            'location_id'   => '1',
            'date'          => '2015-06-22',
            'month'         => '06/2015',
            'start_time'    => '08:00',
            'end_time'      => '16:00',
            'places'        => '19',
            'places_left'   => '19',
            'price'         => '155.00'
        ]);
    }
}

5 个答案:

答案 0 :(得分:45)

在PHP中,使用语句更多是别名而不是导入。因此,由于 ClassesTableSeeder 类不在定义的命名空间中,因此您无需导入数据库类。因此,您可以完全删除使用数据库

答案 1 :(得分:1)

在播种器类中您不需要在页面顶部显示use DB语句。在config>app.php别名数组中编写的任何别名都不需要use语句。这是因为播种器没有任何名称空间。

答案 2 :(得分:1)

使用以下内容代替use DB

use DB as DBS;

之后,您可以按以下方式使用它。

DBS::table('foo')->insert([
            'name'=>'bar',
        ]);

答案 3 :(得分:0)

在laravel迁移中,您不需要调用DB;

删除use DB;

答案 4 :(得分:0)

使用以下代替 use DB

use Illuminate\Support\Facades\DB;