使用外键关系构造select元素

时间:2012-10-17 13:09:24

标签: cakephp

这是我的简单数据库架构和模型:

create table personas --done
(
    id int primary key AUTO_INCREMENT,
    nombre varchar(128),
    apellido varchar(128),
    fecha_de_nacimiento date,
    sexo Bool,
    carnet_de_identidad varchar(64),
    direccion_domicilio varchar(128),
    direccion_oficina varchar(128),
    ciudad varchar(128),
    estado varchar(128),
    pais varchar(128),
    email_principal varchar(512),
    email_secundario varchar(512),
    telefono varchar(64),
    movil varchar(64),
    titulo_profesional varchar(128),
    universidad varchar(128),
    foto_archivada blob,
    curriculum text,
    comentarios text
);

create table coordinadors
(
    id int primary key AUTO_INCREMENT,
    persona_id int,
    FOREIGN KEY (persona_id) REFERENCES personas(id)
);

# My CakePHP models:

class Persona extends AppModel {
    public $hasOne = array('Tutor'); // Some other relationship ommitted for brevity.
}

class Tutor extends AppModel {
    public $belongsTo = 'Persona';
}

我正在尝试创建一个只包含<select> personacoordinadors个对象的HTML Show me a collection of all the persona choices who are coordinadors.元素。用简单的英语,即:$coordinadores = $this->Coordinador->find('all'); Output: array( (int) 0 => array( 'Coordinador' => array( 'id' => '3', 'persona_id' => '2' ), 'Persona' => array( 'id' => '2', 'nombre' => 'Sergioa', 'apellido' => 'Tapia', 'fecha_de_nacimiento' => '2012-10-01', 'sexo' => false, 'carnet_de_identidad' => '215154', 'direccion_domicilio' => 'qwerqwerqwer3', 'direccion_oficina' => 'qwerqwerwqerqwer', 'ciudad' => 'Sqwerqwerwqerra', 'estado' => 'Sqwerqwerqwerquz', 'pais' => 'qwerqwerqwerqwer', 'email_principal' => 'serqwerqwerqwerm', 'email_secundario' => 'stqwerwqerqwercom', 'telefono' => 'qwerqwerqwer', 'movil' => 'qwerqwerqwer', 'titulo_profesional' => 'Ing qwerqwerqwer', 'universidad' => 'qwerqwerqwer', 'foto_archivada' => null, 'curriculum' => '<p>oiasdfoiwecwec</p>', 'comentarios' => '<p>jojqwefijwecwc wecwec</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>wcwecwec</p>' ) ) )

这是我到目前为止所拥有的:

<select>

如何使用Persona obeject创建简单的{{1}}元素?

1 个答案:

答案 0 :(得分:-1)

你已经完成了艰苦的工作。现在您只需要输出结果:

echo '<select>';
foreach ($coordinadores as $coordinador) {
    echo '<option value="' . $coordinador['Persona']['id'] . '">';
    echo $coordinador['Persona']['apellido'] . ' ' . $coordinador['Persona']['nombre'];
    echo '</option>';
}
echo '</select>';