Alguien Que Explique "separador Miles Paso A Paso"

Resuelto ver mi ultimo post abajo

necesito saber como implementar el separador de miles con puntos, paso a paso, se agradece, ya lo intente con con un video de gustabo salgado, pero no me dio :(, hay otro post que hablan de habilitar el componente format en config/main pero no dan nada mas :(.

bueno a mi me salen los números de esta manera 123456789 sin formato alguno y yo lo quiero 123.456.789 .

Así que se agradece si alguien a de explicarlo que lo haga paso a paso para la comunidad

se agradece desde ya

Eso lo haces con number_format


echo number_format(123456789, 2, '.', ',');

No se si es lo que buscas.

Si lo anterior esta en una vista como me quedaria en mi codigo de vista …?




array(

	'name'=>'total_monto',

	'htmlOptions'=>array('style'=>'text-align: right','width'=>'90px'),

	'type'=>'text'

     ),



Se agradece

podes poner el codigo completo, al menos para saber esas propiedades a donde pertenecen…?

‘htmlOptions’ tiene una propiedad ‘value’.

Este es le código del widget en el archivo admin de la vista




<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'monto-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

	'columns'=>array(

		

		array(

				'name'=>'id_proyecto',

				'value'=>'$data->proyecto->cod_proyecto',

				'htmlOptions'=>array('style'=>'text-align: left','width'=>'160px'),

				'type'=>'text'

				 ),

		'origen_rec',

		array(

				'name'=>'total_monto',

				//'value'=>'$data->monto->total_monto',

				'htmlOptions'=>array('style'=>'text-align: right','width'=>'90px'),

				'type'=>'text'

				 ),

		

		array(

				'name'=>'pecunario',

				//'value'=>'$data->monto->pecunario',

				'htmlOptions'=>array('style'=>'text-align: right','width'=>'70px'),

				'type'=>'text'

				 ),

		array(

				'name'=>'no_pecunario',

				//'value'=>'$data->monto->no_pecunario',

				'htmlOptions'=>array('style'=>'text-align: right','width'=>'70px'),

				'type'=>'text'

				 ),

	array(

				'name'=>'total_contraparte',

				//'value'=>'$data->monto->total_contraparte',

				'htmlOptions'=>array('style'=>'text-align: right','width'=>'70px'),

				'type'=>'text'

				 ),

				

		array(

			'class'=>'CButtonColumn',

		),

	),

)); ?>



Se sigue agradeciendo aporte :)

Pero si ya lo tenes, solo falta acomodarlo:

Untested…


array(

                                'name'=>'total_monto',

                                'value'=>'number_format($data->monto->total_monto, 2, ".", ",")',

                                'htmlOptions'=>array('style'=>'text-align: right','width'=>'90px'),

                                'type'=>'text'

                                 ),

O algo mejor, podes usar callbacks > http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

Bueno aquí esta la respuesta de como lo hice video34 "Gustavo Salgado"

1.- crear una carpeta en extensions con el nombre de puntos dentro de ella colocar el archivo GPuntos.php




<?php

class GPuntos extends CActiveRecordBehavior

{

    public $campos;                 // String de campos separados por comas los cuales se les desea aplicar el formato

    public $separador = '.';        // Separador de miles

    

    public function beforeSave($event)

    {

        $campos = explode(',', $this->campos);

        foreach($campos as $campo){

            if(isset($this->getOwner()->{trim($campo)}))

                $this->getOwner()->{trim($campo)} = str_replace($this->separador, '', $this->getOwner()->{trim($campo)});

        }

    }

    public function afterFind($event)

    {

        $separador_dec = ($this->separador != '.')? '.' : ',';

        $campos = explode(',', $this->campos);

        foreach($campos as $campo)

            $this->getOwner()->{trim($campo)} = number_format($this->getOwner()->{trim($campo)},0,$separador_dec,$this->separador);

        

        return true;

    }

}




2.- Después ir al modelo o modelos donde se va a utilizar y agregar (en mi caso modelo Monto)




public function behaviors()

	{

		return array(

			'GPuntos' => array(

				'class' => 'ext.puntos.GPuntos',

				'campos' => 'total_monto, pecunario_uach, no_pecunario_uach, total_contraparte',

				'separador' => '.',

				),

		);

	}




3.- utilizar en admin el widget simple, puesto que el otro no me sirvió (con array{ name, value, htmlOptions} )

mi widgets




<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'monto-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

	'columns'=>array(

		'id_monto',

		'id_proyecto',

		'origen_rec',

		'total_monto',

		/*'ano_01',

		'ano_02',

		'ano_03',

		'ano_04',

		'ano_05',

		'ano_06',*/

		'pecunario',

		'no_pecunario',

		'total_contraparte',

		

		array(

			'class'=>'CButtonColumn',

		),

	),

)); ?>




y ya esta todo el modelo monto con su formato en miles :)