windows yii2 advanced默认登录配置

后台服务要写一个简单的管理页面,前端同事没时间写,后端同学决定自己来写


前端同学推荐用的yii2框架,环境搭建看大家的文章,可能是大家的版本太老了,或者我太笨了,没有对得上的地方。


简单说下安装

1、php的环境要装好,这个文章应该特别多, 我在windows下用的WAMP

2、安装yii2,这里就太坑了,按照大家的方法源都特别慢,受不了,直接去官网下

我下的是高级的

3、解压到你的www目录下


4、进入到这个advanced目录,执行 php init

5、配置common/config/main-local.php中的数据库密码


6、建立对应的库

7、执行yii migrate

8、访问http://localhost/advanced/backend/web/index.php/gii

我当时卡在这里了


因为我根本就不知道帐号密码是啥,在这里坑了好久


解决方法:

在刚才的库里随便加一个username

然后改一下C:\wamp\www\advanced\common\models\User.php文件中的validatePassword函数

增加

        echo $password, Yii::$app->security->generatePasswordHash($pa

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,以下是一个简单的登录功能的实现。 首先,你需要创建一个控制器(Controller)来处理登录操作。在控制器里,你需要定义两个动作(Action),一个用于显示登录表单,一个用于提交登录表单并验证用户身份。 ```php <?php namespace app\controllers; use Yii; use yii\web\Controller; use app\models\User; use app\models\LoginForm; class SiteController extends Controller { public function actionLogin() { $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } else { return $this->render('login', [ 'model' => $model, ]); } } public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } } ``` 在上面的代码中,`actionLogin()` 方法用于显示登录表单和处理提交表单的逻辑,`actionLogout()` 方法用于注销当前用户。 接下来,你需要创建一个模型(Model)来表示用户信息和处理用户登录。 ```php <?php namespace app\models; use Yii; use yii\base\Model; class LoginForm extends Model { public $username; public $password; public $rememberMe = true; private $_user = false; public function rules() { return [ // username and password are both required [['username', 'password'], 'required'], // rememberMe must be a boolean value ['rememberMe', 'boolean'], // password is validated by validatePassword() ['password', 'validatePassword'], ]; } public function attributeLabels() { return [ 'username' => '用户名', 'password' => '密码', 'rememberMe' => '记住我', ]; } public function login() { if ($this->validate()) { return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); } else { return false; } } public function getUser() { if ($this->_user === false) { $this->_user = User::findByUsername($this->username); } return $this->_user; } public function validatePassword($attribute, $params) { if (!$this->hasErrors()) { $user = $this->getUser(); if (!$user || !$user->validatePassword($this->password)) { $this->addError($attribute, '用户名或密码错误'); } } } } ``` 在上面的代码中,`LoginForm` 模型包含了用户登录所需的相关信息,包括用户名、密码和记住我选项。`rules()` 方法定义了表单数据的验证规则,`login()` 方法用于验证用户身份并实现登录逻辑,`getUser()` 方法用于获取用户信息,`validatePassword()` 方法用于验证用户密码是否正确。 最后,你需要创建一个视图(View)来显示登录表单。在视图里,你需要使用 Yii2 的 ActiveForm 组件来生成表单元素,并且使用 Yii2 提供的 $model 变量来绑定模型和表单元素。 ```php <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; $this->title = '登录'; ?> <div class="site-login"> <h1><?= Html::encode($this->title) ?></h1> <p>请填写以下信息登录:</p> <?php $form = ActiveForm::begin([ 'id' => 'login-form', 'layout' => 'horizontal', 'fieldConfig' => [ 'template' => "{label}\n<div class=\"col-sm-3\">{input}</div>\n<div class=\"col-sm-8\">{error}</div>", 'labelOptions' => ['class' => 'col-sm-1 control-label'], ], ]); ?> <?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?> <?= $form->field($model, 'password')->passwordInput() ?> <?= $form->field($model, 'rememberMe')->checkbox([ 'template' => "<div class=\"col-sm-offset-1 col-sm-3\">{input} {label}</div>\n<div class=\"col-sm-8\">{error}</div>", ]) ?> <div class="form-group"> <div class="col-sm-offset-1 col-sm-11"> <?= Html::submitButton('登录', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> </div> </div> <?php ActiveForm::end(); ?> </div> ``` 在上面的代码中,使用了 Yii2 的 ActiveForm 组件来生成表单元素,并且使用了 Bootstrap 的样式。`$model` 变量用于绑定模型和表单元素。 这就是一个简单的登录功能的实现了。当用户填写登录表单并提交后,控制器会调用模型来验证用户身份,如果验证通过,则用户登录成功,否则会显示错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值