Yii2-user:如何以批处理模式创建管理员用户?

Yii2-user: How to create admin user in batch mode?

部署我的应用程序时,当然总是有一个 admin 用户。

如何在没有任何交互的情况下创建这样一个 admin 用户作为第一个用户...

找到了。使用 Yii2 内置迁移有一种简单的方法可以做到这一点。

在 Yii2-user 中有一些钩子我们可以用来创建用户。

此代码必须插入到迁移中。创建新迁移后 ./yii migrate/create,最好是在数据库中创建初始表后:

use yii\db\Transaction;
use app\models\user\User;

public function safeUp()
{
    $transaction = $this->getDb()->beginTransaction();
    $user = \Yii::createObject([
        'class'    => User::className(),
        'scenario' => 'create',
        'email'    => 'admin',
        'username' => 'admin@example.com',
        'password' => 'mysecret',
    ]);
    if (!$user->insert(false)) {
        $transaction->rollBack();
        return false;
    }
    $user->confirm();
    $transaction->commit();
}

框架代码可以在./migrations/...中找到。

不要忘记在 ./config/db.php 中添加数据库配置参数 和 ./config/console.php

中的用户模块