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().
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.
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…
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
$.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');