Laravel php artisan db:seed leads to "use" statement error

25,727

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',
        ]);
Share:
25,727
V4n1ll4
Author by

V4n1ll4

Updated on July 22, 2022

Comments

  • V4n1ll4
    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'
            ]);
        }
    }