Dois forms para 1 model

Boa tarde,

Teria como utilizar, em uma mesma create, dois forms ( um para a model e outro para uma outra pagina não-diretamente relacionada com a model )?

A minha duvida eh a seguinte:

Preciso de 2 formulários no create, um que redirecione para uma pagina especifica ( Ou seja, apenas um submit para uma pagina especifica, e nessa página teria outro submit para retornar para o _form ), e outro que salve os dados. Como no Yii geralmente eu só vejo um formulario na _form, e nas pesquisas q eu fiz sobre o assunto geralmente o pessoal trata 2 models ( uma para cada formulario. Não me interessa pois eu pretendo utilizar apenas 1 model, visto que o segundo formulario não seria para uma model), não sei como começar o código.

Alguem poderia me ajudar?

Olá Bruno,

Não tenho certeza se entendi,mas vamos lá:

Vamos supor que você tenha feito o seu CRUD usando como fonte a tabela TesteA, sendo assim você terá uma controller chamada testeA e uma pasta para a view chamada testeA, dentro desta pasta crie sua página customizada, por exemplo _customPage.php, ela estará junto com a página _form.php gerada automaticamente pelo CRUD, em seguida siga os passoas abaixo:

1-) Em sua página customizada, no caso desse exemplo o arquivo _customPage.php, crie um formulário cuja ação será o ‘testeA/create’ e defina uma flag no botão submit para controlarmos a exibição das páginas na controller, por exemplo:





<?php echo CHtml::submitButton('Abrir Form Original', array('name'=>'customPage', 'value'=>'true')); ?>




2-) Altere sua controller, em nosso caso trata-se da TesteA.php para que quando seja acessada a ação create seu usuário seja redirecionado para sua página Customizada ou formulário Original





         /**


	 * Creates a new model.

	 * If creation is successful, the browser will be redirected to the 'view' page.

	 */


	public function actionCreate() {


          $model = new testeA;

 

             // AO ACESSAR A AÇÃO CREATE VIA POST, VERIFICA SE A FLAG DE CONTROLE EXISTE

             if(isset($_POST)){


                // SE A FLAG DO BOTÃO SUBMIT EXISTE, EXIBE O FORMULÁRIO ORIGINAL

                if(isset($_POST['customPage'])){

                     

                   $this->render('_form.php',array('model'=>$model));




                // AO RECEBER UM POST SEM FLAG SALVA OS DADOS DO FORMULÁRIO

                } else {

                

                   $model->attributes=$_POST['testeA'];

                   $model->save();

                   $this->redirect(array('view','id'=>$model->id));


                }




             // AO ACESSAR PELA PRIMEIRA VEZ A AÇÃO CREATE VIA GET, EXIBE SUA PÁGINA CUSTOMIZADA

             } else {


              $this->render('_customPage.php',array('model'=>$model));


             }


        }




Acho que é isso, espero que te dê uma luz!

Abs e programe feliz :)

Valeu, era exatamente o q eu estava querendo!