pretendo que ao submeter um formulário a aplicação passe para outro formulário mas que passe o id do inserido no primeiro.
estou a fazer isto com sessão:
no modelo1Controler:
public function actionCreate()
{....
if($model->save())
$_id_criado = new CHttpSession;
$_id_criado->open();
$_id_criado['id'] = $model->id;
$this->redirect(array('modelo2/create'));
.....
no _form do modelo2
$_id_criado = new CHttpSession;
$_id_criado->open();
$_id = $_id_criado['id'];
isto funciona bem!
o problema está que no form1 tenho algumas regras de validação (compos obrigatório p.e.) e se não os preencher, ao submeter, em vez de mostrar o formulário com os erros, simplesmente aparece-me uma página em branco
Página branca? Você está com display_error ligado? Talvez esteja dando algum erro no PHP que não está sendo exibido. Como é o código que chama a view ai dentro dessa action?
Você realmente precisa colocar isso na session? Não da pra passar esse id como parametro na url? Tipo
Caso REALMENTE precise usar session, não há necessidade de instanciar a classe CHttpSession. A instância de WebApplication já faz isso pra você e a deixa disponível por Yii::app()->session.
realmente havia um erro e nao estava a mostrar … fui ver os erros do apache…
[07-Mar-2012 17:41:13 UTC] PHP Fatal error: Call to a member function open() on a non-object in /home/testes/public_html/yii/protected/controllers/Modelo1Controller.php on line 75
a linha 75 é a $_id_criado->open();
estou a tentar fazer por sessão porqeu nao quero passar os parametros na url e buscar por $_GET tal como exemplificas na primeira parte da tua resposta… vou tentar a segunda.