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?
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.
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:
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