6把刀
- 6把刀 回复了话题 找人帮人帮我修改一套YII程序
带价,少于1块,不干。
- 6把刀 回复了话题 YII2 rules规则里面的参数要怎么取
你这里的问题是没有理解什么是model,
model的public $q 是啥,
他只是model的一个变量,如果你没有有在他的基类model里面有过数据结构的hasOne或hasMayn在extraFilds的情况下,他这变量哪来的值。
还有一个就是作用域的问题,就算是你前面规则写的是自定义验证,你的作用域就不对。
还有好多问题,因为从代码上看,会出现出很多理解性问题。就你这需求而言,是我来做,我就会重构user这一块用户统一接口,直接出一个API。就像以前discuz里面的用户接口一路。哪个应用都可以接入授权。
而如果不这样用,具体处理问题起来也有很多方法getDb那处理就是一个方法,还有就是在model这个模型类里的自定义验证处看接use user2这个表去定义一个验证规则就行。而这个user2哪来,你自已重写他的getDb
这话题会衍生出如何重构的问题,是一个结构性问题,并不是单单语言上的问题。设计模式问题。
我就装个逼,要讲下去可以讲一天了。 看看不懂,一个是sql一个是规则验证,能搞到一起?
规则验证是钥匙,SQL是里面的家具
你要使用sql,就要拿到钥匙去开门。这能扯到一块?最难的是语言表达有歧义,这就没法搞了
如果你想大写字母也包括算7个长度那就换
(?=.*?\d{1,})(?=.*?[A-Z]{1,})(?=.*?[a-zA-Z]{7,})\b
只要能想的都能写,这就是思想,你都能把问题语言组织起来描述了,那就把这描述转成机器语言。就像中文与英文一样
kkkk456FWEdadaa445 在这则正则来说FWEdadaa他并不算是连续的字母,因为他有大小写区分。
你的问题提问歧义就很大是至少7个字母+1上数字+1个大字字母
还是至少7个字母+至少1上数字+至少1个大字字母你从kkkk456FWEdadaa445这个来看,至少7个字母你就匹配不到dadaa这也就5个字母,能匹配到那就可以吃屎了。
如果是至少7个字母+至少1上数字+至少1个大字字母
正则换成(?=.?\d{1,})(?=.?[A-Z]{1,})(?=.*?[a-z]{7,})\b我了个去,@6把刀 谢谢你的回答,不过这样不行,比如:kkkk456FWEdadaa445 这样就不匹配了
当然不行,你看你的题目1个数字以及1个大写字母
你上面的kkkk456FWEdadaa445当然匹配不到,匹配到的话这正则不就是错的吗