Ciao a tutti! Sono nuovo del Forum e colgo l’occasione per ringraziarvi, dato che negli ultimi giorni i vostri post mi stanno salvando la vita
Sono almeno due giorni che sto impazzendo dietro a questa cosa; la soluzione che più si avvicina l’ho trovata qui
http://www.yiiframework.com/forum/index.php/topic/20284-salvare-relazioni-many-many/
ma non sono del tutto sicuro.
Vi spiego la situazione. Ho tre tabelle, per semplicità mi invento i nomi delle tabelle come seguono
USER
id
name
SPORT
id
name
description
etc…
USER_SPORTS
id
user_id
sport_it
Nel momento in cui vado a creare un nuovo user, voglio salvare quali sono gli sport praticati.
Con i post seguiti fino ad ora, ho eseguito i seguenti passaggi.
Nella view _form dell’User, visualizzo un CheckBoxList con l’elenco di tutti gli sport
echo CHtml::activeCheckBoxList(sports[]',null,Chtml::listData(Sports::model()->findAll(),'id','name'));
Mentra nel model dell’user, ho dichiarato la relation
'userSports'=> array(self::MANY_MANY, 'Sports', 'user_sports(user_id, sport_id)')
1)Per prima cosa, come posso verificare che venga selezionato almeno 1 checkbox dall’elenco? Immagino che debba inserire nei rules dell’User qualche cosa, ma cosa?
2)Una volta che effettuo questa validazione, come salvo i checkbox selezionati nella tabella user_sports?(devo utilizzare la funzione afterSave di User?)
3)Poi il problema più grande sorgerebbe quando devo andare a fare l’update dell’user. Come recuperare la lista dei checkbox, però con preselezionati gli sport già presenti della tabella user_sports? Se poi i checkbox selezionati vengono modificati, o tolti, come andare a modificare la lista dentro user_sports?
Vi ringrazio in anticipo per qualsiasi consiglio. Ciao,
Giacomo