首页 > 解决方案 > 修补实体时出错

问题描述

我正在使用 cakephp 3.6 并尝试在保存之前编辑一些实体字段,所以当我使用 pathchEntity 编辑这些字段时:

$booking->set([
    'status'  => 1,
    'deposit' => $this->request->getData('deposit')
]);

我在保存之前遇到了实体验证错误,所以我应该如何编辑这些字段而不会出现错误;

\src\Controller\BookingsController.php (line 253)
[
    'property_id' => [
        '_required' => 'This field is required'
    ],
    'deposit' => [
        'fileType' => 'Veuillez introduire un fichier de type: PDF, JPG.'
    ],
    'last_name' => [
        '_required' => 'This field is required'
    ],
    'first_name' => [
        '_required' => 'This field is required'
    ],
    'phone' => [
        '_required' => 'This field is required'
    ],
    'travelers_count' => [
        '_required' => 'This field is required'
    ],
    'travelers_type' => [
        '_required' => 'This field is required'
    ],
    'start' => [
        '_required' => 'This field is required'
    ],
    'end' => [
        '_required' => 'This field is required'
    ],
    'nights_count' => [
        '_required' => 'This field is required'
    ],
    'discount' => [
        '_required' => 'This field is required'
    ],
    'total' => [
        '_required' => 'This field is required'
    ],
    'total_discount' => [
        '_required' => 'This field is required'
    ]
]

标签: phpcakephpcakephp-3.0

解决方案


您正面临此错误,因为您可能在模型中定义了以下规则。

$validator->requirePresence('user_id');

这将检查创建和更新操作的验证。你可以改变它如下

$validator->requirePresence('user_id', 'create');

这意味着验证创建操作时需要该字段的存在。

https://book.cakephp.org/3.0/en/core-libraries/validation.html

希望这会有所帮助。


推荐阅读