[Yii2] Problema relazione hasMany

Salve a tutti,

ho la seguente situazione.

Adesso dal modello User tramite relazioni vorrei ottenere

il Nome dell’utente,il typo di numero e il numero di telefono. tutto concatenato in un unica stringa.

Tipo

Sig. Rossi Cellulare 3324343455

Sig Esposito Tel Casa 334545

Ho provato con le relazioni e il ciclo for each senzariuscirci.

Grazie mille

Nel model User:




    public function getUserTelephones()

    {

        return $this->hasMany(UserTelephone::className(), ['id_user' => 'id_user']);

    }  



Nel model UserTelephone:




    public function getTelephoneType()

    {

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

    }  



Quindi, se $modelUser è il model contenente l’utente,

puoi ciclare tutti i telefoni dell’utente in questo modo:




foreach($modelUser->userTelephones as $ut)

{

     echo sprintf("%s %s - Tipo: %s - Telefono: %s", $modelUser->name, $modelUser->surname, $ut->telephoneType->telephone_type, $ut->telephone_number);

}



Grazie mille funziona.

Come posso fare per andare a capo per ogni utente.

La stringa viene chiamata all’interno di DetailView.

Aggiungi un <br /> alla fine del pattern, ovvero:




     echo sprintf("%s %s - Tipo: %s - Telefono: %s <br />", $modelUser->name, $modelUser->surname, $ut->telephoneType->telephone_type, $ut->telephone_number);



Ho provato sia con <br> che con \n ma non funziona

Si perchè verrà encodato.

Prova ad usare la proprietà ‘format’ della riga della DetailView:





...

[

     'format' => 'raw',

     'label' => 'Nome della cella',

     'value' => function() {

          ....

     }

]



Grazie Funziona