Yii Framework Forum: Visualizzare Le Sedi Di Una Certa Azienda - Yii Framework Forum

Jump to content

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

Visualizzare Le Sedi Di Una Certa Azienda Rate Topic: -----

#1 User is offline   vangelis1977 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 09-April 13

Posted 12 April 2013 - 04:17 AM

Ciao a tutti,
Scusate la semplicità della domanda. Ma vorrei avere qualche tips per risolvere la questione.
Ho creato due modelli, studio e sede. Ho fatto il crud del controller sede e nella form ho messo anche i
dati della sede primaria e tutto pare andare. Ora vorrei dare l'opportunita' di gestire le sedi ( aggiornamento,delete,etc ) per ogni studio. La prima cosa che ho pensato e' stata quella di creare il CRUD per il modello sede. Ma ora come faccio a vincolare le richieste del modello sede a secondo dello studio che voglio modificare? Provo a spiegarmi meglio
Vado nella pagine update studio, nella sidebox aggiungo gestisci sedi. La mia prima idea era quella di portare l'utente su sedi/admin ma ovviamente lui mi mostra tutte le sedi. Non mi visualizza solo le sedi dello studio X. Posso passargli dei params sul'url. Oppure la strada e' sbagliata?
Grazie mille.
Stefano
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,988
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 12 April 2013 - 04:23 AM

Al DataGrid non devi passare tutti i dati ma solo quelli di una data azienda, quindi devi mettere mano al metodo search e fare si che non restituisca tutto. Come vedrai all'interno di questo metodo, il metodo search compone una query, puoi provare a modificare quella query.
0

#3 User is offline   vangelis1977 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 09-April 13

Posted 12 April 2013 - 05:09 AM

Grazie... ho risolto agilmente :D
Ciao,
Stefano
0

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,988
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 12 April 2013 - 02:24 PM

Ok, però adesso potresti dirci come hai risolto cos da poter essere di aiuto a chi dovesse capitare di qui =).
0

#5 User is offline   vangelis1977 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 09-April 13

Posted 12 April 2013 - 04:33 PM

Pardon :D
Sono un novellino di Yii, quindi la soluzione anche se funzionante potrà sicuramente essere migliorata.

Nel modello sede ho creato un nuovo metodo per la ricerca, chiamandolo searchBy che accetta due parametri il tipo di azienda e l'id della stessa, inoltre ho aggiunto le condizioni necessarie in criteria per fare la query richiesta

public function searchBy($id,$type)
        {
                
                $criteria=new CDbCriteria;

                $criteria->compare('id',$this->id);
                $criteria->addCondition('t.idstudio = :id');
                $criteria->addCondition('t.type = "'.$type.'"');
                $criteria->params = array(':id' => $id);



Nella sidebox nella view dell'azienda ho creato un link che richiama appunto sede/admin cosi' composto:

array('label'=>'Gestione Sedi', 'url'=>array('/sede/admin&idstudio='.$model->id.'&type=S')),



come ultimo step, nella vista/admin nella sezione riguardante il CGridView ho sostituito il metodo da richiamare in 'dataProvider' , da $model->search a $model->searchBy

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'sede-grid',
'dataProvider'=>$model->searchBy($_GET['idstudio'],$_GET['type']),


Spero di essermi fatto capire :D

Ciao,
Stefano
0

#6 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 340
  • Joined: 10-April 12

Posted 13 April 2013 - 06:57 AM

è possibile che tu abbia scritto del codice in più

se ho capito bene la tua esigenza era quella di visualizzare, dato uno studio, le sedi.

prima cosa se gii non te l'ha già fatto, impostare la relation in Studio, HAS_MANY Sedi.

Poi magari nell'actionView di StudioController potevi fare una cosa del genere:
public function actionView($id)
	{
                $grid=new Sede('search');
		$grid->unsetAttributes();  // clear any default values
		if(isset($_GET['Sede']))
			$grid->attributes=$_GET['Sede'];

		$grid->studio_id = $id;

		$this->render('view',array(
			'model'=>$this->loadModel($id),
                        'grid'=>$grid,
		));
	}


e poi nella view mettevi la tua Gridview con dataProvider settato a $grid.
1

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