Yii2-user:如何以批处理模式创建管理员用户?
Yii2-user: How to create admin user in batch mode?
部署我的应用程序时,当然总是有一个 admin
用户。
如何在没有任何交互的情况下创建这样一个 admin
用户作为第一个用户...
- ... 通过 SQL?
- ...使用 Yii2 迁移?
找到了。使用 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
中的用户模块
部署我的应用程序时,当然总是有一个 admin
用户。
如何在没有任何交互的情况下创建这样一个 admin
用户作为第一个用户...
- ... 通过 SQL?
- ...使用 Yii2 迁移?
找到了。使用 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