【问题标题】:CakePHP 3.x custom validation if entity has relation如果实体有关系,CakePHP 3.x 自定义验证
【发布时间】:2016-11-11 18:23:57
【问题描述】:

试图了解一些稍微复杂的自定义 CakePHP 验证规则。

我有Posts 必须与City 相关联一些(较大的)城市有SubCities。我的Posts 表同时具有city_idsub_city_id,因此在某些情况下,sub_city_id 将为 Null。

我有一个很好的 ajax 表单可以加载并让您选择 SubCity,如果您首先选择了有一些 City。我想编写一个验证规则,这样如果SubCitiescity_id 字段上可用,您就不能拥有Null 的sub_city_id

对解决此问题的最佳方法有任何帮助吗?

【问题讨论】:

    标签: php validation cakephp


    【解决方案1】:

    您是否尝试查看手册?阅读Conditional validation

    在定义验证规则时,您可以使用 on 键来定义何时应用验证规则。如果未定义,则将始终应用该规则。其他有效值是创建和更新。使用这些值之一将使规则仅适用于创建或更新操作。

    此外,您可以提供一个可调用函数来确定是否应应用特定规则:

    $validator->add('picture', 'file', [
        'rule' => ['mimeType', ['image/jpeg', 'image/png']],
        'on' => function ($context) {
            return !empty($context['data']['show_profile_picture']);
        }
    ]);
    

    ↑ 这个例子取自本书。所以根据你的需要修改它。在回调中放置您检查城市的逻辑。

    【讨论】:

      猜你喜欢
      • 2016-09-07
      • 2015-12-03
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多