当我尝试在 laravel 中使用播种器时如何解决问题?
How do I fix the problem when I try to use seeder in laravel?
我正在尝试在我的 laravel 项目中添加一个超级用户。我有,但出现错误。
The use statement with non-compound name 'SuperAdminSeeder' has no effect", "E:\github\LARAVEL\Deal-Ocean\database\seeds\DatabaseSeeder.php", ["E:\github\LARAVEL\Deal-Ocean\vendor\composer/../../database/seeds/DatabaseSeeder.php"]
SuperAdminSeeder.php
<?php
use App\Role;
use App\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SuperAdminSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$role = Role::create(['name' => 'super_admin']);
$user = User::create(['email' => 'imrulhasan273@email.com', 'imrulhasan' => bcrypt('secret')]);
DB::table('role_user')->insert(['user_id' => $user->id, 'role_id' => $role->id]);
}
}
在上述查询中,我正在创建一个具有 ID 名称和角色的超级用户。并在枢轴 table.
中创建它们的 role_id 和 user_id
DatabaseSeeder.php
<?php
use SuperAdminSeeder;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// $this->call(UserSeeder::class);
$this->call(SuperAdminSeeder::class);
}
}
您的 DatabaseSeeder
不在专用命名空间中;它在全局命名空间中。因此,您不需要 use
全局命名空间中的任何其他 类。
由于 SuperAdminSeeder
也在全局命名空间中,因此 DatabaseSeeder
中的 use SuperAdminSeeder;
语句不会执行任何操作(除了导致错误)。
删除 use SuperAdminSeeder;
语句。
我正在尝试在我的 laravel 项目中添加一个超级用户。我有,但出现错误。
The use statement with non-compound name 'SuperAdminSeeder' has no effect", "E:\github\LARAVEL\Deal-Ocean\database\seeds\DatabaseSeeder.php", ["E:\github\LARAVEL\Deal-Ocean\vendor\composer/../../database/seeds/DatabaseSeeder.php"]
SuperAdminSeeder.php
<?php
use App\Role;
use App\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SuperAdminSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$role = Role::create(['name' => 'super_admin']);
$user = User::create(['email' => 'imrulhasan273@email.com', 'imrulhasan' => bcrypt('secret')]);
DB::table('role_user')->insert(['user_id' => $user->id, 'role_id' => $role->id]);
}
}
在上述查询中,我正在创建一个具有 ID 名称和角色的超级用户。并在枢轴 table.
中创建它们的 role_id 和 user_idDatabaseSeeder.php
<?php
use SuperAdminSeeder;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// $this->call(UserSeeder::class);
$this->call(SuperAdminSeeder::class);
}
}
您的 DatabaseSeeder
不在专用命名空间中;它在全局命名空间中。因此,您不需要 use
全局命名空间中的任何其他 类。
由于 SuperAdminSeeder
也在全局命名空间中,因此 DatabaseSeeder
中的 use SuperAdminSeeder;
语句不会执行任何操作(除了导致错误)。
删除 use SuperAdminSeeder;
语句。