yii2的验证规则是一个非常实用而且高效安全的验证功能,下面是我自己的一些总结
在一个model里,继承ActiveRecord,重写覆盖原来的rules(),同时可以 启动场景的功能,重新覆盖scenarios()函数
在一个model里,继承ActiveRecord,重写覆盖原来的rules(),同时可以 启动场景的功能,重新覆盖scenarios()函数
model模型User.php:
namespace app\models;
use Yii;
use yii\web\IdentityInterface;
use yii\db\ActiveRecord;
use yii\captcha\Captcha;
class User extends ActiveRecord {
//定义好属性,因为在mysql的表里没有这些字段,所以需要用到就得自定义
//整个model的属性,其实还包括mysql的字段,ActiveRecord已经帮我们完成,所以无需定义
public $verifyCode;
public $password_compare;
/**
* @inheritdoc
*/
public function rules()
{
return [
//注册时必须字段,在register,和savede场景中都必须要
[['useraccount', 'username', 'password'],'required','on'=>['register','save']],
//任何场景都需要验证
['useraccount','string','length' =>[7,12]],
/**验证是否唯一,即用户名是否已注册,在save场景中,这个动作由前端表单的设置'enableAjaxValidation'=>true来ajax异步触发,在控制器的save中要执行以下的代码:
$model->load($_POST);
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON