2012-10-17 99 views
1

构建一个select元素这里是我的简单的数据库架构和模型:使用外键关系

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'; 
} 

我试图创建一个只persona对象是coordinadors一个HTML元素<select>。用简单的英语,这将是: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>' 
    ) 
    ) 
    ) 

如何使用该个性obeject创建一个简单的<select>元素?

回答

-1

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

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

这是我想出的解决方案。所以你说没有CakePHP“魔术”的方式来做到这一点?谢谢! – sergserg

+0

这不是你如何使用cakephp。 – dogmatic69

+0

@ dogmatic69:如果你能让我看到一种更好的方式,我就会全神贯注。 :) – sergserg