我遇到了问题。我的ordertypes
中有字段$this->request->data['Workposition']
。此字段不是Workposition
模型中的字段,但我需要验证此字段不为空。这是三个复选框的列表(选中复选框时为0
,否则为1
)。因此,我需要在我的控制器中直接添加验证,以便至少有一个复选框设置为1
(已选中)。
我在尝试
if (all three checkboxes are set to `0`)
$this->Workposition->validationErrors['ordertypes'] = __('Choose at least one ordertype');
但它不起作用,因为此字段不是此Workposition
模型的字段。添加$this->Workposition->set($this->request->data);
或$this->Workposition->validates();
没有帮助。
答案 0 :(得分:0)
你可以在你的控制器动作中放置一个try catch块,如果所有三个复选框都为空,则抛出异常。
public function myControllerMethod()
{
try {
if (all three checkboxes are zero) {
throw new Exception('Select a checkbox');
}
} catch (Exception $e) {
$this->data = array(
'sucess' => false,
'message' => $e->getMessage()
);
}
}
http://book.cakephp.org/2.0/en/development/exceptions.html http://php.net/manual/en/language.exceptions.php