Laravel php artisan db:seed leads to "use" statement error
Solution 1
In PHP the use statement is more of an alias than import. So since the ClassesTableSeeder class isn't in a defined namespace, you don't need to import the DB class. As a result you can remove use DB entirely.
Solution 2
use the following instead of use DB
use Illuminate\Support\Facades\DB;
Solution 3
in laravel migration you dont need call DB ;
remove use DB;
Solution 4
In seeder class You don't need to use DB
statement on top of the page. Any alias written inside config>app.php
aliases array don't require use
statement. This is because seeder doesn't have any namespace.
Solution 5
Use the following instead of use DB
.
use DB as DBS;
After that, you can use it as follows.
DBS::table('foo')->insert([
'name'=>'bar',
]);
V4n1ll4
Updated on July 22, 2022Comments
-
V4n1ll4 almost 2 years
When I try to run
php artisan db:seed
I get the following error:The use statement with non-compound name 'DB' has no effect
I have written my own seeder file which I have included below, based on a snippet from the doc. As you can see I am using the
use DB
shortcut - is this what the problem is?<?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' ]); } }