ここで私を助けてくれる Cakephp 2.2 の専門家が必要です。次の「$this->data」を使用して更新を行いたい:
array(
'Button' => array(
(int) 0 => array(
'id' => '1',
'on' => '0'
),
(int) 1 => array(
'id' => '2',
'on' => '0'
),
(int) 2 => array(
'id' => '3',
'on' => '1'
),
(int) 3 => array(
'id' => '4',
'on' => '1'
)
)
)
Button モデルの検証規則は次のとおりです。
public $validate = array(
'id'=>array(
'notEmpty' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Module id can not be empty',
'on' => 'update'
),
'naturalNumber' => array(
'rule' => 'naturalNumber' ,
'message' => 'Module id is not integer',
'on' => 'update'
)
),
'name'=>array(
'notEmpty' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Module name can not be empty',
'on' => 'create'
),
'alphaNumericWithSpaces' => array(
'rule' => array('custom', '/^[a-z0-9 ]*$/i') ,
'message' => 'Module category is not alphanumeric'
)
),
'type'=>array(
'notEmpty' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Module category can not be empty',
'on' => 'create'
),
'naturalNumber' => array(
'rule' => 'naturalNumber',
'message' => 'Module category is not integer'
)
),
'on'=>array(
'boolean' => array(
'rule' => 'boolean',
'message' => 'Module ON value is not boolean'
)
));
そして、コントローラーには次のコードがあります。
if(!empty($this->data)) {
if($this->Button->saveAll($this->data)) {
debug ('Saved!');
}
else {
debug($this->Button->validationErrors);
}
}
問題は、「saveAll()」が更新を行っておらず、これらのフィールドで on =>「create」を使用してレコードの作成時にのみ発生させたとしても、次の検証エラーが発生することです。
array(
'name' => array(
(int) 0 => 'Module name can not be empty'
),
'type' => array(
(int) 0 => 'Module category can not be empty'
)
)
ありがとう!