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