Laravel php artisan db:seed 导致“use”语句错误

Posted

技术标签:

【中文标题】Laravel php artisan db:seed 导致“use”语句错误【英文标题】:Laravel php artisan db:seed leads to "use" statement error 【发布时间】:2015-09-14 07:11:37 【问题描述】:

当我尝试运行 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'
        ]);
    

【问题讨论】:

【参考方案1】:

在 PHP 中,use 语句更像是一个别名,而不是 import。因此,由于 ClassesTableSeeder 类不在定义的命名空间中,因此您不需要导入 DB 类。因此,您可以完全删除 use DB

【讨论】:

为什么 Laravel Docs 有使用 DB? laravel.com/docs/5.1/seeding#writing-seeders 可能只是文档中的一个小故障。如果你不使用命名空间,你当然不需要导入任何东西。 感谢您的帮助【参考方案2】:

使用以下代替use DB

use Illuminate\Support\Facades\DB;

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习,特别是如果某个问题已经包含一些旧的且被高度评价的答案【参考方案3】:

在种子类中你不需要在页面顶部声明use DB。写在 config&gt;app.php 别名数组中的任何别名都不需要 use 语句。这是因为播种机没有任何命名空间。

【讨论】:

【参考方案4】:

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

删除use DB;

【讨论】:

【参考方案5】:

使用以下内容代替use DB

use DB as DBS;

之后,你可以如下使用它。

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

【讨论】:

以上是关于Laravel php artisan db:seed 导致“use”语句错误的主要内容,如果未能解决你的问题,请参考以下文章

php Laravel Artisan迁移实例

php Laravel Artisan Migrate创建领域

无法 php artisan 迁移 - Laravel

laravel 自动删除 php artisan serve 上的 server.php

如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器

Laravel php artisan 产生错误