Closed ziqiming closed 1 year ago
如果两个动作代码相似度较大,可以写成一个动作,通过某个参数来区分。
建议安装DEMO,查看里面的示例用法
刚看了DEMO,,确实比以前的DEMO写的详细多了。 验证器的验证规则,好多文件都有USER的相关验证。。重复的太多啦。最好还是出一个通用验证的文件 比如通用参数 ID USER PASS 等等,设置以后,不管这个参数在哪个动作使用,都可以验证它。这样更简单
后续我考虑如何方便的实现,目前可以这么做,在一个验证规则文件里包含另一个公共验证规则:
<?php
$common = include('../common.php'); // 一个公共验证规则
$arr = ['...']; // 当前验证规则,去除公共重复的部分
$arr = array_merge($common, $arr); // 合并验证规则
return $arr; // 这里要返回数组
?>
这个解决办法好粗暴,,,,比如这样的
默认是这个规则 'id' => [ 'label' => 'ID', 'check' => 'is_alnum' ],
在某些文件ID为必填写的 要改为
'id' => [ 'label' => 'ID', 'check' => 'required&is_alnum' ],
用这个方法还行吗?
我不知道你的id什么类型,如果整型不要这么做的,如果是字符串直接用is_alnum就可以了(检测是否字母或数字),空值肯定不通过,具体可以用如下方法测试下结果:
$check = new \boa\validater\checker();
$res = $check->is_alnum($id);
var_dump($res);
后续出个规则测试工具
如我的请求为 :
创建用户 home/user/add
编辑用户 home/user/set
那么我就要在 variable文件夹中建立两个文件
/user/add.php /user/set.php
这两个都对username的账号进行自动验证,这样就有了很多的重复代码
那么能不能有一个通用的 比如在variable/user/ 建立一个 index.php或者 common.php写一个验证规则,这两个动作都能生效呢?