Archivo de la categoría: Yii

Apartado para el mundo de la programación con Yii Framework

Como devolver JSON desde el controlador – Yii

Crea la siguiente función en el Controller (/protected/componentes/Controller.php)

/**
 * Return data to browser as JSON and end application.
 * @param array $data
 */
protected function renderJSON($data)
{
    header('Content-type: application/json');
    echo CJSON::encode($data);

    foreach (Yii::app()->log->routes as $route) {
        if($route instanceof CWebLogRoute) {
            $route->enabled = false; // disable any weblogroutes
        }
    }
    Yii::app()->end();
}

Y en el controlador es tan fácil como devolver el json de esta manera:

$this->renderJSON($json);

Información sacada de: http://stackoverflow.com

Modificar url amigables – Yii

En el archivo /protected/config/main.php buscamos la configuración de urlManager y en rules podemos jugar con las posibilidades que proporciona Yii, a continuación podrás ver unos cuantos ejemplos que te aclararán el funcionamiento de las reglas:

'urlManager'=>array(
	'urlFormat'=>'path',
	'showScriptName' => false,//para activar las url amigables debemos crear esta variable
	'urlSuffix' => '.html',//para darles a todas las páginas una extensión .html
	'rules'=>array(
    	'<controller:\w+>/<id:\d+>'=>'<controller>/view',
		'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
		'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

        '<controller:\w+>/<action:\w+>/<id:\d+>/<id_2:\d+>'=>'<controller>/<action>',//Permite 2 parametros numericos \d

        #'<controller:\w+>/<action:\w+>/<svar:\w+>/<svar2:\w+>/<id:\d+>'=>'<controller>/<action>',//Permite 2 parametros sting y otro numerico
        #'<controller:\w+>/<action:\w+>/<svar:\w+>/<id:\d+>'=>'<controller>/<action>',//Permite un parametro sting y otro numerico \d
        #'<controller:\w+>/<action:\w+>/<sid:\w+>'=>'<controller>/<action>',//Con $sid \w permite strings como parametros
		),
    	'appendParams'=>true,
	),

Filtro y relaciones en el formulario de búsquedas – Yii

/views/class_name/admin.php

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'immobles-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		'idGrup',
		'CODPIS',
		array(
	        'name'=>'CODPAI',
            'filter'=>CHtml::listData(Paisos::model()->findAllByAttributes(array('idGrup'=>17]['idGrup'])), 'CODPAI', 'NOM1'),
            'value'=>'Paisos::model()->findByPk($data->CODPAI)->NOM1',
        ),
	...