尝试了解一些稍微复杂的自定义CakePHP验证规则。
我有Posts
,必须与City
相关联一些(较大的)城市有SubCities
。我的Posts
表有city_id
和sub_city_id
,所以在某些情况下,sub_city_id
将为Null。
我有一个很好的ajax表单工作,加载,让你选择一个SubCity
,如果你已经选择了一个City
,有一些。我想写一个验证规则,所以如果SubCities
在city_id
字段上可用,你就不能有Null的sub_city_id
。
有什么最好的方法吗?
您是否尝试查看手册?阅读条件验证
在定义验证规则时,您可以使用on键来定义何时应用验证规则。如果未定义,则将始终应用该规则。其他有效值是create和update。使用这些值之一将使规则仅适用于创建或更新操作。
另外,您可以提供一个可调用的函数,该函数将决定是否应该应用特定的规则:
$validator->add('picture', 'file', [
'rule' => ['mimeType', ['image/jpeg', 'image/png']],
'on' => function ($context) {
return !empty($context['data']['show_profile_picture']);
}
]);
↑这个例子摘自这本书。因此根据您的需要修改它。在回调函数中放入检查城市的逻辑。