lexen77
(Antonio Flaminio)
1
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);
}
lexen77
(Antonio Flaminio)
3
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);
lexen77
(Antonio Flaminio)
5
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() {
....
}
]