问题标题如下: 如何在使用Validator :: extend时访问其他输入属性?如何访问Validator :: extend中的其他输入属性?
在检查了Laravel的内置Validator类后,我可以看到它使用$this->data
来访问其他属性;但是您不能在Validator :: extend需要的闭包中直接使用$this
。
似乎手动扩展Validator类(通过自定义类)是唯一的选择...我是否正确?如果是这样的话,这对我来说就像是将验证程序转换为包的严重限制,因为每个包都会扩展基本Validator类,PHP最终会保留最后定义的扩展名(从而使其他验证程序包不可用)。或者我错过了什么?
谢谢。
编辑
我也试图把它包起来贾森·刘易斯以下this method一个包,但我不断收到一个BadMethodCallException
指出的验证方法找不到......包是PSR-0我很确定这不是一个命名空间问题。
你能够使用'Input :: get()'来获取你的闭包内的其他字段吗? – duellsy
我没有真正考虑过直接通过它的外观获取输入。而令人惊讶的是,这**做**工作......如果将它包装在一个包中,我不太确定依赖于外观是否可行? – Propaganistas
使用'Input :: get()'的IMO非常黑客。如果您不想验证不是来自请求的数据,会发生什么情况?不完全是一个可重用的自定义验证规则.. – SamV