Yii2 - Ricavare attributo da tabelle collegate

Salve,

ho tre tabelle collegare tra di loro

Citta


id_citta

citta

id_provincia

Provincia


id_provincia

provincia

id_nazione

Nazione


id_nazione

nazione

Mi trovo nella pagina index delle views di citta dove visualizzo

un elenco ,tramite GridView, di città che vorrei pero visualizzare in questo formato

"citta-nazione"

Quale è la soluzione migliore da intraprendere?

Grazie

Ciao Antonio,

devi creare le relazioni nei model e poi nella gridview puoi direttamente puntare

nome_relazione.campo_tabella_relazionata

Es. se la relazione nel model Citta si chiama getNazione(), allora avrai nella gridview l’attributo:

‘nazione.nome_nazione’, se il campo della tabella nazione che contiene il nome si chiamata nome_nazione.

Trovi tutto qui:

http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html

Ciao Fabrizio,

scusa ma in citta non trovo solo la relazione getProvincia?

public function getProvincia()

{


    return $this->hasOne(Provincia::className(), ['id_provincia' => 'id_provincia']);


}

Da quel che ho capito la relazione getNazione la trovo in Provincia.

Quindi come faccio a ricavare la Nazione dal Model Città?

Puoi mettere nel model Citta il getProvincia() e nel model Provincia il getNazione().

Quindi poi da Citta puoi fare




$nazioneDaCitta = $modelCitta->provincia->nazione.



Ok?

Ciao Fabrizio,

grazie funziona perfettamente. Anche se in verità non ho capito la logica.

Quale’ il nesso del collegamento tra i vari Modelli e getRelazione di ogni modello?

Grazie

saluti