企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# model 模型 ## 命名 ## 验证规则 按照约定的顺序进行字段验证,并且需要继承父级。 1. 过滤空格 2. 必须的字段 3. 字段声明(int) 4. 字段声明(string) 5. 个性化验证 6. 唯一验证 >[info] 顺序必须保持与数据库字段一致。 >[info] 除了最后两种验证,其它验证第一个参数必须使用数组。 >[info] 必须的字段只需保证最少字段即可,更多的请写在表单模型中。 >[info] `filter`验证需要注意,将会自动将没有值的字段变为空字符串`''`。 >[info] 字段声明必要时请声明最小值,如:`int`类型。 >[info] 错误信息使用`{attribute}`代替,并在句末加上句号。 ~~~ /** * 验证规则 */ public function rules() { $rules = parent::rules(); $new = [ [['username', 'mobile'], 'filter', 'filter' => 'trim'], [['dealer_id', 'username'], 'required'], [['dealer_id', 'address_id', 'sex', 'birthday', 'oauth_source', 'last_at', 'status', 'created_at', 'updated_at'], 'integer', 'min' => 0], [['username'], 'string', 'min' => 5, 'max' => 16], [['auth_key'], 'string', 'max' => 32], [['password_hash', 'password_reset_token'], 'string', 'max' => 255], [['email', 'real_name'], 'string', 'max' => 64], [['mobile', 'last_ip'], 'string', 'max' => 16], [['avatar', 'oauth_openid'], 'string', 'max' => 128], ['username', 'match', 'pattern' => '/^[(\x{4E00}-\x{9FA5})a-zA-Z]+[(\x{4E00}-\x{9FA5})a-zA-Z_\d]*$/u', 'message' => '{attribute}由字母、汉字、数字、下划线组成,且不能以数字和下划线开头。'], ['email', 'email'], ['mobile', 'match', 'pattern' => '/^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})$/', 'message' => '请输入有效的{attribute}。'], ['username', 'unique', 'targetClass' => Member::className(), 'message' => '此{attribute}已被使用。'], ['email', 'unique', 'targetClass' => Member::className(), 'message' => '此{attribute}已被使用。'], ['mobile', 'unique', 'targetClass' => Member::className(), 'message' => '此{attribute}已被使用。'], ]; // 合并数组 return ArrayHelper::merge($rules, $new); } ~~~ ## 自定义方法 ### 优先前缀 优先写出常用前缀的方法便于快速开发,具体为`get`、`set`、`del`。 >[info] `get`表示获取数据,常用的有`getInfo`、`getList`。 >[info] `set`表示更新或添加数据,常用的有`setInfo`、`setList`。 >[info] `del`表示删除数据,常用的有`delInfo`、`delList`。 ~~~ public static function getInfo($id){ ... } public static function getList($goodsId){ ... } public static function setInfo(array $data){} ... ~~~