如题,本人小白,刚开始学就拿了这个教程,不知是不是起点有点高了。在第五章的时候遇到问题,希望老师或者兄弟姐妹们给于帮助。
第五章中一共提到三个文件 admin.php 代码如下:
<?php namespace app\modules\models; use yii\db\ActiveRecord; use YIi; class Admin extends ActiveRecord{ public $rememberMe = true; public static function TableName(){ return "{{%admin}}"; } public function rules(){ return[ ['adminuser','required','message'=>'管理员帐号不能为空'], ['adminpass','required','message'=>'管理员密码不能为空'], ['rememberMe','boolean'], ['adminpass','validatePass'], ]; } public function validatePass(){ if(!$this->hasErrors()){ $data = self::find()->where('adminuser = :user and adminpass = :pass',[":user"=>$this->adminuser,":pass"=>md5($this->adminpass)])->one(); if(is_null($data)){ $this->addError("adminpass","用户名或者密码错误"); } } } public function login($data){ if($this->load($data) && $this->validatePass()){ //做点有意义的事 $lifetime = $this ->rememberMe ? 24*3600 : 0; $session = Yii::$app->session; session_set_cookie_params($lifetime); $session['admin']=['adminuser'=>$this->adminuser,'isLogin'=>1,]; return (bool)$session['admin']['isLogin']; } return false; } }
PublicController.php文件中的代码:
<?php namespace app\modules\controllers; use yii\web\Controller; use app\modules\models\Admin; use yii; class PublicController extends Controller{ public function actionLogin(){ $this->layout=false; $modle =new Admin; if (Yii::$app->request->isPost){ $post= Yii::$app->request->post(); //var_dump($post); if($modle->login($post)){ $this->redirect(['default/index']); Yii::$app->end(); } } return $this->render("login",['model'=>$modle]); } }
前台login.php文件中用到的代码:
<?php $form=ActiveForm::begin(['fieldConfig'=>['template'=>'{error}{input}',],]);?> <div class="span4 box"> <div class="content-wrap"> <h6>慕课商城 - 后台管理</h6> <?php echo $form->field($model,'adminuser')->textInput(["class"=>"span12","placeholder"=>"管理员账号"]);?> <?php echo $form->field($model,'adminpass')->passwordInput(["class"=>"span12","placeholder"=>"管理员密码"]);?> <!-- <input class="span12" type="text" placeholder="管理员账号" /> <input class="span12" type="password" placeholder="管理员密码" />--> <a href="#" class="forgot">忘记密码?</a> <?php echo $form->field($model,'rememberMe')->checkbox(["id"=>"remember-me","template"=>"<div class='remember'>{input}<label for='remember-me'>记11住我</label></div>",]);?> <!-- <div class="remember"> <input id="remember-me" type="checkbox" /> <label for="remember-me">记住我</label> </div>--> <?php echo Html::submitButton('登录',['class'=>'btn_glow primary login']);?> <!-- <a class="btn-glow primary login" href="index.html">登录</a>--> </div> </div> <?php ActiveForm::end();?>
上面是我看视频书写的代码,问题如下: 当提交的用户名与密码 错误的时候,会正常报错。但当提交正常的用户名和密码的时候,就没有反映,不跳转到default/index页中。看了好多遍还是没有发现问题。望大神们给答复。是不是我回头先去看基础课去。。。。。。
天使之翼死神之镰
慕容0585378
侠客岛的含笑