Yii Framework Forum: redirect - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

redirect Rate Topic: -----

#1 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 06 May 2012 - 11:41 AM

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.
0

#2 User is offline   bluyell 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 224
  • Joined: 28-October 11

Posted 06 May 2012 - 09:01 PM

View PostRTJ, 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










0

#3 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 500
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 07 May 2012 - 12:07 PM

A la funcion redirect hay que pasarle la URL.

Lo que vos le envias es un array.

Fijate de poner así:
$this->redirect(array('view', 'id'=>$model->id));


Lo cual normaliza la URL.
1

#4 User is offline   RTJ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 04-May 12

Posted 08 May 2012 - 07:24 AM

View Postsebas, on 07 May 2012 - 12:07 PM, said:

A la funcion redirect hay que pasarle la URL.

Lo que vos le envias es un array.

Fijate de poner así:
$this->redirect(array('view', 'id'=>$model->id));


Lo cual normaliza la URL.


Muchas gracias, es justo lo que necesitaba :)
gracias por aclararme esto ;)
Saludos
0

#5 User is offline   sportive 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 01-August 12

Posted 03 October 2012 - 09:01 AM

Como hago para enviar dos o mas variables por referencia en usando redirect??? por ejemplo

$this->redirect(array('view_numeros','num'=>$num, 'error'=>$error));

asino me funciona probe tambien

$this->redirect(array('view',array('num'=>$num, 'error'=>$error)));

y tampoco como puedo hacer para pasar las variables num y error a la vista????
0

#6 User is offline   Stingwear 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 18-February 13

Posted 05 July 2013 - 03:45 AM

Hola, la llamada a redirect es de la siguiente forma:

$this->redirect('ruta'); (ruta = 'controlador/accion?parametro1=valor1&parametro2=valor2')

u otra opción sería

$this->redirect(array('controlador/accion', 'nombreParametro1'=>'valorParametro1', 'nombreParametro2'=>'valorParametro2', ...));

Con lo que si con ninguna de las dos formas anteriores consigues pasar los parámetros, entonces el problema está en el controlador al que intentas llamar.


View Postsportive, on 03 October 2012 - 09:01 AM, said:

Como hago para enviar dos o mas variables por referencia en usando redirect??? por ejemplo

$this->redirect(array('view_numeros','num'=>$num, 'error'=>$error));

asino me funciona probe tambien

$this->redirect(array('view',array('num'=>$num, 'error'=>$error)));

y tampoco como puedo hacer para pasar las variables num y error a la vista????

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users