php - foreign - yii2 0
Yii, obtenga valor de otra tabla con clave externa (2)
Soy muy nuevo en yii framework, así que podría usar algo de ayuda con algo. Digamos que tengo una tabla en mi base de datos con los usuarios, uno de los campos del perfil es la nacionalidad. En otra mesa, obtuve muchas nacionalidades como esta:
id Nationality short
1 Germany DE
2 France FR
3 Netherlands NL
etc ... más de 60 nacionalidades. En la lista de uso, la nacionalidad del usuario está vinculada a esta tabla, como esta:
id username nationality
1 user 1
eso significa la nacionalidad del usuario 1 = alemania. pero ¿cómo puedo seleccionar Alemania de la tabla de nacionalidades cuando estoy en la vista de perfil?
espero estar limpio, de lo contrario preguntar :)
saluda, Stefan.
Necesita clases de modelo para ambas tablas, por ejemplo
class Profile extends CActiveRecord {
...
}
class Nationality extends CActiveRecord {
...
}
Luego, en el modelo de Profile
necesita una relación con la Nationality
:
public function relations() {
return array(
''nationality'' => array(self::BELONGS_TO, ''Nationality'', ''nationality''),
),
}
El nombre de la relación ''nationality''
es cómo se refiere al modelo relacionado, por ejemplo:
$profile = Profile::model()->findByPk($id);
echo $profile->nationality->short;
Recursos
Tahts para qué son las relaciones: ver modelo relacional :
''nationality'' => array(self::BELONGS_TO, ''Nationality'', ''nationality'')
En su opinión, si usa un CDetailView , puede hacer referencia a la nacionalidad por su nombre de relación y llamar sus atributos con notación de punto:
nationality.short
lea los documentos de CDetailView para ver más ejemplos