Я не пробовал две формы с одинаковыми входами, но это работает для двух форм с разными входами.Я не понимаю, почему это не должно работать для ваших нужд.
Просмотр: Убедитесь, что каждая кнопка отправки имеет значение имени, чтобы $ this-> params мог его идентифицировать.
//first form ...
<?php
$profile_options = array('label' => 'edit profile',
'name' => 'form1');
echo $this->Form->end($profile_options);
?>
//second form ...
<?php
$password_options = array('label' => 'edit password',
'name' => 'form2');
echo $this->Form->end($password_options);
?>
Действие контроллера: используйте $ this-> params для проверки каждой отправки формы
if(isset($this->params['form']['form1'])){
$this->User->set($this->data); //necessary to specify validation rules
if($this->User->validates(array('fieldList' => array('email')))){
$this->User->saveField('email', $this->data['User']['email']);
}
}
elseif(isset($this->params['form']['form2'])){
//same deal for second form
}