【问题标题】:How to validate one to many relationship in cakephp 3如何在cakephp 3中验证一对多关系
【发布时间】:2018-11-19 17:02:12
【问题描述】:

我想验证 hasMany 表单数据。

例如: 表 order 有很多 order_item。

我尝试在订单表的validationDefault函数中进行验证:

$validator
            ->notEmpty('cust_name')
            ->notEmpty('cust_email')
            ->notEmpty('order_items.*.oi_item');
            ->notEmpty('order_items.*.oi_price');

如何验证?

【问题讨论】:

    标签: php validation cakephp cakephp-3.0


    【解决方案1】:

    当具有关联实体的实体被传递到表 save() 时,关联应该得到验证。因此,您应该将 order_item 的验证规则放入 OrderItemTable 中,例如

        $validator
           ->notEmpty('oi_price')
           ->notEmpty('oi_price')
    

    当验证失败时,您应该能够通过$order->getErrors() 得到错误(假设$order 是传递给OrdersTable::save() 的订单实体)。

    【讨论】:

    • 我可以在不创建另一个模型的情况下验证它吗? cakephp 支持多维数组验证吗?
    • 不,我不这么认为。我想不出为什么你应该这样做。只需烘焙 OrderItem 表,配置您的验证规则和一切顺利。
    • 如何使用不同的类名,因为 OrderItem 会有不同的验证。该表只是例如我有不同的用例。
    • 你到底是什么意思?你想拥有不同的验证器吗?还是你说的是表的类名?
    猜你喜欢
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多