La mia domanda è di pura teoria di programmazione, chiedo consiglio proveniente dalla vostra esperienza personale.
Avendo Company [1 - N] CompanyContacts,
nella form delle company, se !isNewRecord è visibile anche la form / list per aggiungere i Contacts.
Attualmente la company l'ho fatta con delle actionCreateContact, actionDeleteContact, etc ...
Io non ho creato il CRUD da gii per il model CompanyContact, perchè ogni contatto può esistere solo se appeso ad una ed una sola company.
E' stata una buona scelta ?
O dovrei creare almeno il CompanyContactController e far si che il CompanyController usi le action del CompanyContractController ?
Page 1 of 1
Best Practice: Vista Con Diversi Model - Come Creare I Controller ?
#1
Posted 21 November 2012 - 02:42 AM
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
#2
Posted 21 November 2012 - 03:43 AM
Io ho una situazione simile per gestire i contatti dell'anagrafica: 1 anagrafica ha n contatti.
nel mio caso ho un controller che gestisce anche i contatti a cui mando le richieste di CRUD da parte dell'anagrafica.
In questo modo gestisco meglio il codice.
nel mio caso ho un controller che gestisce anche i contatti a cui mando le richieste di CRUD da parte dell'anagrafica.
In questo modo gestisco meglio il codice.
#3
Posted 21 November 2012 - 04:59 AM
scusami, ma non ho capito: le varie action che gestiscono i contatti sono DENTRO al controller dell'anagrafica?
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
#4
Posted 21 November 2012 - 05:16 AM
scusa la confusione:
ho un controller contattiController, con tutte le sue brave action, dal form di anagrafica con ajax inserisco/elimino i contatti in update, mentre in create uso una action di Controller che mi restituisce una serie di input del tipo contatti[n][valore]: al submit del post l'anagrafica viene inserita, e poi gli dico foreach $_POST['Contatti'] Contatto::save().
ho un controller contattiController, con tutte le sue brave action, dal form di anagrafica con ajax inserisco/elimino i contatti in update, mentre in create uso una action di Controller che mi restituisce una serie di input del tipo contatti[n][valore]: al submit del post l'anagrafica viene inserita, e poi gli dico foreach $_POST['Contatti'] Contatto::save().
#5
Posted 21 November 2012 - 08:15 AM
Uhm ... grazie ... ma non mi ispira molto ...
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
#6
Posted 21 November 2012 - 02:58 PM
Io genero model e crud direttamente da gii. E poi sfrutto il codice generato. Vuole dire che se devo aggiungere un contatto, sfrutto CompanyContacts::actionCreate(); perché se uso yii per fare prima, tanto vale sfruttarlo del tutto e lasciare che sia lui a scrivere il codice del crud. Quello che poi vado a cambiare, sono i vari redirect e/o qualche cosa nelle view.
#7
Posted 22 November 2012 - 06:28 AM
Ci sto, è appropriato.
Però ... il fatto è che c'è di mezzo l'aggiornamento di liste ed altre cose via ajax, e l'oggetto principale è Company.
Io perciò ho bisogno di eseguire CompanyContacts::actionCreate, ma poi questo mi deve fare il render di un partial di company con il model di company dentro, come minimo per avere il companyId , il name ed alcuni altri dati...
sto ancora sbagliando approccio vero ?
Però ... il fatto è che c'è di mezzo l'aggiornamento di liste ed altre cose via ajax, e l'oggetto principale è Company.
Io perciò ho bisogno di eseguire CompanyContacts::actionCreate, ma poi questo mi deve fare il render di un partial di company con il model di company dentro, come minimo per avere il companyId , il name ed alcuni altri dati...
sto ancora sbagliando approccio vero ?
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
#8
Posted 22 November 2012 - 08:35 AM
Secondo me sbagli perché vuoi renderizzare il template con i dati appena creati. Quello che secondo me puoi fare, è farti restituire un json. Restituire coincide con renderizzare in questo caso.
Ed a questo punto, l'aggiornamento ajax potrebbe essere simile a questo
echo array(json_encode(array( 'id' => 2, 'username' => 'sensorario', 'blog' => 'www.yiinotes.com', )));die
Ed a questo punto, l'aggiornamento ajax potrebbe essere simile a questo
$.post('controller/action', {'dati':'passati', 'via':'post}, function(json){ // Qui recuperi i valori restituiti dal json in questo modo // json.id // json.username // json.blog }, 'json');
#9
Posted 22 November 2012 - 08:54 AM
Ne tengo conto, grazie
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
Share this topic:
Page 1 of 1