一. 利用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类
把shop_用%代替 不过前提必须要在config的db.php下添加tablePrefix属性
public static function tableName()
{
return "{{}}";
}
也可以这样写
public static function tableName()
{
return "{{%admin}}";
}
如下所示
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;
- 对于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∗∗′;等于上面valipass规则on的login所以登录时需要验证该规则。顺便提一下
this->load(
data)等于true表示成功加载了传过来的数据。
this->validate()=true表示验证rule规则通过~
public function login($data)
{
$this->scenario = '**login**';
if ($this->load($data) && $this->validate())
{
}
}
二.下载SDK 配置app账号
三.接入项目
四 七牛