yiishizhan

来源:互联网 发布:mac os x10.10.5迅雷 编辑:程序博客网 时间:2024/06/03 23:00

一. 利用Gii生成新模块admin
1.打开http://127.0.0.1/my_yii/web/index.php?r=gii下生成
这里写图片描述
2.在config文件夹下的web.php下添加
$config[‘modules’][‘admin’] = [
‘class’ => ‘app\modules\admin’,
];
二模型
1. 操作同名数据表,请继承ActiveRecord类。
2. 在模型类中定义如下 方法来操作fei_admin类


public static function tableName()
{
return "{{}}";
}
也可以这样写
public static function tableName()
{
return "{{%admin}}";
}
把shop_用%代替 不过前提必须要在config的db.php下添加tablePrefix属性
如下所示

return [    'class' => 'yii\db\Connection',    'dsn' => 'mysql:host=localhost;dbname=imooc_shop',    'username' => 'root',    'password' => '',    'charset' => 'utf8',    'tablePrefix'=>'fei_',];

3.对于数据表中不存的字段,但是也需要rules规则验证,则需要声明这个属性
例如 注册时候需要重复密码,以及是否记录密码

 public $rememberMe=true;    public $repassword;
  1. 对于model类里的rules方法
    ①直接return一个数组,数组的每个二维数组对于一条验证规则 具体的规则规范可以参考

http://www.yiichina.com/tutorial/635
(不过注意里面的match规则有误)
实际应为:[['sendmail_limit'],'match','pattern'=>'/^[1-9]d*|0$/','message'=>'必须为正整数'],具体可以看评论
②验证规则也可以自己定义一个方法。 如下 定义的验证两次输入密码是否一致

   public function rules()   {       return [           ['adminuser','required','message'=>'用户名不能为空','on'=>['login','seekPass','addadmin']],           ['adminpass','**validPass**','on'=>['**login**']],           ['rememberMe', 'boolean', 'on' => 'login'],      ['repassword','compare','compareAttribute'=>'adminpass','message'=>'两次输入密码不一致','on'=>['resetPassword','addadmin']],       ];   }

上述验证登录密码是否正确的方法valipass就是自己定义的。
valipass规则

 public function  validPass()    {        if(!$this->hasErrors())        {            $user = $this->find()->where('adminuser = :adminuser and adminpass=:adminpass',[':adminuser' => $this->adminuser,':adminpass' => md5($this->adminpass)])->one();            if(is_null($user))            {                $this->addError('adminpass','用户名或者密码错误');            }        }    }

后面的on表示哪些方法需要验证此项规则。
例如下面的login方法定义了this>scenario=login;valipassonlogin便this->load(data)truethis->validate()=true表示验证rule规则通过~

   public  function  login($data)    {        $this->scenario = '**login**';         if ($this->load($data) && $this->validate())         {         }    }

二.下载SDK 配置app账号
三.接入项目
四 七牛

0 0
原创粉丝点击