如题,本人小白,刚开始学就拿了这个教程,不知是不是起点有点高了。在第五章的时候遇到问题,希望老师或者兄弟姐妹们给于帮助。
第五章中一共提到三个文件 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
侠客岛的含笑