Yii Framework Forum: Personalizzare Una Colonna Di Cgridview - Yii Framework Forum

Jump to content

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

Personalizzare Una Colonna Di Cgridview Rate Topic: -----

#1 User is offline   fdilecce 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 51
  • Joined: 03-September 12

Posted 26 October 2012 - 03:00 PM

ciao a tutti,
ho bisogno del vostro aiuto
come dal titolo ho necessità di personalizzare una colonna di CGridView.
In particolare devo inserire una stringa ricavata dalla lettura di una tabella relativa ad un model diverso.
Mi spiego meglio:
ho una view con CGridView in cui ho specificato questa colonna:
array(
            'name'=>'valore',
       			'value'=>array('Internicode','interniToString'),
            'header'=>'Elenco',
          ),

nel model Internicode ho dichiarato:

public function interniToString()
	{
		//qui devo fare la query sulla tabella per estrapolare i dati che mi servono	
		$stringa="stringa ricavata da tabella";
		return $stringa;
	}



e fino qui funziona tutto.
ora vorrei inserire un parametro nella funzione:
public function interniToString($parametro)
quello che non riesco a capire è come passare il parametro nell'array di colums
qualcuno mi può aiutare?
grazie
0

#2 User is offline   fdilecce 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 51
  • Joined: 03-September 12

Posted 28 October 2012 - 04:18 PM

ho detto una cosa senza senso?
0

#3 User is offline   fdilecce 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 51
  • Joined: 03-September 12

Posted 29 October 2012 - 06:30 PM

Ho risolto, riporto come in caso sia di aiuto a qualcuno.
Mi ha aiutato questo articolo di sensorario che ringrazio.

 array(
            'name'=>'valore',
            'value'=>'Internicode::model()->interniToString("$data->id")',
            'header'=>'Elenco',
          ),

0

#4 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 30 October 2012 - 03:41 AM

Secondo me ti conviene usare un metodo getter per questi casi

public function getInterni()
{
  return $this->interniToString($this->id);
}


e poi nel datagrid imposti semplicemente

 array(
            'name'=>'interniToString',
          ),


Le funzioni sono una cosa molto vecchio stile, e creare un nuovo model (nternicode::model()) solo per chiamarci sopra una funzione mi sembra brutto.

Usa i getter, sono metodi che aggiungono valore al tuo model, concettualmente significa che il model sa quali sono i suoi interni.
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