in lib/generator.js [1256:1292]
visitModelValidate(ast, level) {
const modelName = this.getRealModelName(MODEL);
for (let i = 0; i < ast.nodes.length; i++) {
const node = ast.nodes[i];
this.visitFieldValidate(modelName, node.fieldValue, level, `$this->${_name(node.fieldName)}`);
const attrName = _name(node.fieldName);
const pattern = this.getAttributes(node, 'pattern') || '';
const maxLength = this.getAttributes(node, 'maxLength') || 0;
const minLength = this.getAttributes(node, 'minLength') || 0;
const maximum = this.getAttributes(node, 'maximum') || 0;
const minimum = this.getAttributes(node, 'minimum') || 0;
const required = node.required || false;
if (required || maxLength > 0 || minLength > 0 || maximum > 0 || pattern !== '') {
if (required) {
this.emit(`${modelName}::validateRequired('${attrName}', $this->${attrName}, true);\n`, level);
}
if (pattern !== '') {
this.emit(`${modelName}::validatePattern('${attrName}', $this->${attrName}, '${pattern}');\n`, level);
}
if (maxLength > 0 && maxLength <= 2147483647) {
this.emit(`${modelName}::validateMaxLength('${attrName}', $this->${attrName}, ${maxLength});\n`, level);
}
if (minLength > 0 && minLength <= 2147483647) {
this.emit(`${modelName}::validateMinLength('${attrName}', $this->${attrName}, ${minLength});\n`, level);
}
// 不能超过JS中最大安全整数
if (maximum > 0 && maximum <= Number.MAX_SAFE_INTEGER) {
this.emit(`${modelName}::validateMaximum('${attrName}', $this->${attrName}, ${maximum});\n`, level);
}
// 不能超过JS中最大安全整数
if (minimum > 0 && minimum <= Number.MAX_SAFE_INTEGER) {
this.emit(`${modelName}::validateMinimum('${attrName}', $this->${attrName}, ${minimum});\n`, level);
}
}
}
this.emit('parent::validate();\n', level);
}