Yii2.0全力出击打造完整电商平台--第五章小问题

        如题,本人小白,刚开始学就拿了这个教程,不知是不是起点有点高了。在第五章的时候遇到问题,希望老师或者兄弟姐妹们给于帮助。

        第五章中一共提到三个文件     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页中。看了好多遍还是没有发现问题。望大神们给答复。是不是我回头先去看基础课去。。。。。。

tngh
浏览 2083回答 3
3回答

天使之翼死神之镰

  if($modle->login($post))这个判断应该为假,从而判断 if($this->load($data) && $this->validatePass())这个判断也为假,进而推断 $this->load($data)和 $this->validatePass())都为假,突然发现admin.php中并没有load()方法,是没贴上来还是本身就没有;$data是否为空,validatePass()方法为何执行结果为假,一步步判断,一步步排错,多用var_dump()加exit组合,慢慢找到原因。

慕容0585378

为什么我的前后台模板都不能用呢?谁可以分享一下吗

侠客岛的含笑

做完了吗
打开App,查看更多内容
随时随地看视频慕课网APP