我有一个查询从数据库中查找Homes,以及来自相关表的一些额外数据,如下所示:
$homes_data = $this->Home->find('all',array(
'conditions'=>$conditions,
'order'=>array('Home.mls_status ASC','Home.num DESC'),
'contain'=>array('Realtor.show_price','Realtor.show_address','HighlightImage.num')
))
此时,我希望能够使用Set :: extract来过滤我的结果集,以删除MLS编号无效的任何结果,在这种情况下,这意味着不完全是6位数字:
$homes_data = Set::extract('/Home/[mls=/^[[:digit:]]{6}$/]', $homes_data);
这个问题是它丢失了数组的Realtor和HighlightImage结果。所以:
有没有一种简单的方法来重建这个,以保持有效MLS家庭的相关数据?
如果没有这个,有没有办法在SQL查询中使用条件“必须是数字且长度恰好为6位”,最好是将它保持在整洁,惯用的CakePHP范围内?
答案 0 :(得分:0)
thesunneversets,
如果数据输入期间的验证不是一个选项,则可能需要编写自定义模型函数以保持控制器的精简。 您应该能够为模型设置验证规则,并在此自定义函数中手动使用验证。
<强> Edit0:强> 另一种方法是将现有数据映射到您最喜欢的值集。