RTJ, on 06 May 2012 - 11:41 AM, said:
Hola a todos,
voy probando con Yii y tengo una duda.
porque este redirect no me funciona después en un edit:
$this->redirect('view',array('id'=>$model->id));
solo me funciona así:
$this->redirect('../view/'.$model->id));
tengo la versión 1.1.10 de Yii
no se si tiene que ver algo con esto o estoy haciendo algo mal
Muchas gracias de antemano.
hola,
para invocar una vista dentro de un action de un controller es: render, no redirect.
$this->render('view', array('id'=>$model->id));
si tu quisieras llamar a redirect, seria para algo como:
$this->redirect('index.php?r=tucontroller/update&id=12');
EL RENDER/VIEW funciona asi:
ejemplo, tienes
- un modelo llamado Orden, en /protected/models/orden.php.
- una controladora: /protected/controllers/orden.php
- una vista: /protected/views/orden/vista.php
cuando tu llamas a
index.php?r=orden/vista&id=1
lo que sucede internamente es esto:
- root/index.php recibe un GET, para ir a la controladora ORDEN (protected/controllers/orden.php) y buscar la funcion:
public function actionVista($id) {
// codigo...
} - se invoca la funcion actionVista, ella espera tener en la URL el parametro ID, porque se o pusiste en los argumentos de la funcion ($id)
- el actionVista debera cargar el modelo, de: /protected/models/orden.php, asi:
- $model = Orden::model()->findByAttributes(array('idorden'=>$id));
- el actionVista indicara renderizar la vista: protected/views/orden/vista
- asi: $this->render('vista', array('model'=>$model));
- donde: this, es el apuntador a la controladora: orden instanciada por Yii framework para ti por el archivo root index.php
- 'vista', es el nombre del archivo a conseguir en: /protected/views/orden/vista.php
- listo.
Deberás echas una lectura mas profunda a Yii, la consigues aqui mismo en el sitio web, mira como esta hecha la aplicacion de inicio que crea el yiic.bat