在Lithium验证器中避免阵列扁平化

时间:2014-06-05 15:30:47

标签: php lithium

如何在验证前停止Lithium将数组的输入值压平?

Lithium中的Validator :: check方法在处理验证器之前在输入上调用Set :: flatten,请参见此处: http://li3.me/docs/lithium/util/Validator::check()

...
$values = Set::flatten($values);
...

这个问题是它假设$ values中的值是标量。但是,我将数组传递给模型(这是一个MongoDB文档)。

所以

'users' => ['foo','bar']

将成为

'users.0' => 'foo',
'users.1' => 'bar'

完全破坏验证,因为它会更改属性名称。

我实际上可以删除flatten任务,但我不想搞乱框架的内部。我也可以在验证之前将数组转换为JSON字符串,对象等,然后将其转换回来,但这听起来很蹩脚:)另一方面,我认为应该有一种简单而好的方法来跳过扁平化不知。

0 个答案:

没有答案