InitController.php 2.83 KB
<?php
namespace console\controllers;

use Yii;
use yii\console\Controller;
use backend\models\Admin;

/**
 * Site controller
 */
class InitController extends Controller
{

    /** 
     * Create init user 
     */  
    public function actionAdmin()  
    {
        $this->stdout("1: Create admin account\n2: Modify admin account\n");
        $action = $this->prompt('Which:');
        
        if ($action == 1){
            echo "创建一个新用户 ...\n";                  // 提示当前操作  
            $username = $this->prompt('User Name:');        // 接收用户名  
            $email = $this->prompt('Email:');               // 接收Email  
            $password = $this->prompt('Password:');         // 接收密码  
            $model = new Admin();                            // 创建一个新用户  
            $model->username = $username;                   // 完成赋值  
            $model->email = $email;  
            $model->setPassword($password);
            $model->generateAuthKey();
            $model->generatePasswordResetToken();
        }elseif ($action == 2){
            echo "修改一个已存在用户 ...\n";                  // 提示当前操作  
            $username = $this->prompt('User Name:');        // 接收用户名  
            if (!$username){
                echo '请输入用户名';
                return 1;
            }
            $email = $this->prompt('Email:');               // 接收Email  
            $password = $this->prompt('Password:');         // 接收密码  
            if (!$email && !$password){
                echo '没有任何修改';
                return 0;
            }
            
            // 修改一个已存在用户  
            if (!$model = Admin::findByUsername($username)){
                echo '找不到该用户';
                return 1;
            }
            if ($email){
                $model->email = $email; 
            }
            if ($password){
                $model->setPassword($password);
                $model->generateAuthKey();
                $model->generatePasswordResetToken();
            }
        }else{
            $this->stderr('Not a predefined option');
            return 1;
        }
        
        
        if (!$model->save())                            // 保存新的用户  
        {  
            foreach ($model->getErrors() as $error)     // 如果保存失败,说明有错误,那就输出错误信息。  
            {  
                foreach ($error as $e)  
                {  
                    echo "$e\n";  
                }  
            }  
            return 1;                                   // 命令行返回1表示有异常  
        }  
        return 0;                                       // 返回0表示一切OK  
    }

    public function actionTest(){
        echo "init/test";
    }
}