CakePHP:获取不存在字段的验证错误

CakePHP:获取不存在字段的验证错误,php,forms,validation,cakephp,cakephp-2.2,Php,Forms,Validation,Cakephp,Cakephp 2.2,我对CakePHP中的表单有一些奇怪的问题。 我正在尝试将从表单获取的数据保存到模型预订。一些联系资料,一条信息,一个电话号码和一个电子邮件地址,标准的东西。数据已发布,我正试图通过 $this->Booking->save ($this->request->data); 但在我尝试保存时,有两个字段未通过验证并停止保存过程: 给买家打电话和carsign 奇怪的是,这两个字段不是我试图保存的表单的一部分。它们不会像预期的那样出现在$this->data中: $this

我对CakePHP中的表单有一些奇怪的问题。 我正在尝试将从表单获取的数据保存到模型
预订
。一些联系资料,一条信息,一个电话号码和一个电子邮件地址,标准的东西。数据已发布,我正试图通过

$this->Booking->save ($this->request->data);
但在我尝试保存时,有两个字段未通过验证并停止保存过程:
给买家打电话
carsign

奇怪的是,这两个字段不是我试图保存的表单的一部分。它们不会像预期的那样出现在
$this->data
中:

$this->request->data:

    array(
    'Booking' => array(
        'question' => 'Lieber Vermieter,
ich würde gerne im angegebenen Zeitraum auf deinem Parkplatz parken. Ist das möglich? Ich freue mich auf deine Rückmeldung.
Liebe Grüße',
        'start_date' => '30.10.2014',
        'end_date' => '30.10.2014',
        'sellerid' => '294',
        'buyerid' => '301',
        'parkid' => '10468',
        'status' => 'Angebot',
        'answer' => 'Blserntesn7x6 u fcgt c c ',
        'ppemail_seller' => '*email*',
        'phone_seller' => '0532732123',
        'acceptrules' => '1',
        'acceptrules2' => '1',
        'id' => '1012'
    )
)
…而且它们也不是我提交的表格的一部分。它们甚至没有以任何其他形式出现在页面上。但是,它们确实作为字段存在于数据库中,并且在模型中具有验证规则:

Booking.php(模型):

}

但是根据我到目前为止阅读的文档,如果相应字段不是提交表单的一部分,则规则notEmpty不应该做任何事情。当然,我添加了
required=>false
,但它们仍然会向我抛出错误。 如果有任何帮助,我将非常高兴,提前谢谢你。:) 对不起,如果有些事情很难理解,英语不是我的母语

更新:


谢谢你的建议,我发现了问题。我在下面的答案中写道。

您是否尝试过使用
'allowEmpty'

'phone_buyer' => array( 
    'required' => false,
    'allowEmpty' => false,
    'message' => 'Damit dich der Vermieter...'
)
我发现了问题


问题是在保存之前的一些代码中,
$this->Booking->read()已用于获取数据库的内容。由于该函数覆盖了模型中的数据(如我所知),因此我试图保存的数据丢失,并被数据库的内容替换(其中缺少这些特定字段)。我将函数替换为
$this->Booking->findById($id),一切正常。

我确实这样做了,但当它解决了这个问题时,它给了我一个问题,即这些字段现在可以接受空值,这是我不想要的:这些字段在另一个页面上是强制性的。另一个规则将字段设置为
notEmpty
,这意味着如果字段为空,则不会接受这些字段,然而,
allowEmpty
可以做到这一点。它需要设置为false,当然:)更新了我的回答那么你在哪里设置
电话和
汽车签名;您是否将其设置为控制器操作,并希望在出现错误时停止保存
phone\u buyer
carsign
是在另一个操作中设置的,不会出现在此控制器操作或视图中。保存失败,因为模型尝试保存这些没有值的字段。
'phone_buyer' => array( 
    'required' => false,
    'allowEmpty' => false,
    'message' => 'Damit dich der Vermieter...'
)