我正在尝试将两个模型链接到我的cakephp 2.7.5 app。
问题是,当我尝试添加一个新的“用户”时,表单没有显示“选择”,其中包含我创建的“Departamentos”选项。
代码是:
应用\模型\ user.php的的
<?php
class User extends AppModel {
public $name = "User";
public $belongsTo = array('Departamento' => array('className' => 'Departamento', 'foreignKey' => 'departamento_id'));
...
应用\模型\ Departamento.php 的
<?php
class Departamento extends AppModel {
public $displayField = 'nombre';
public $name = "Departamento";
public $hasMany = array('User' => array('className' => 'User', 'foreignKey' => 'departamento_id'));
}
这是MySQL脚本:
create table users(
id int primary key auto_increment,
nombre varchar(200),
username varchar(20) not null,
password varchar(100) not null,
rol varchar(50) not null,
departamento_id int
);
create table departamentos(
id int primary key auto_increment,
nombre varchar(200) not null
);
我的 app \ View \ Users \ add.ctp 代码:
echo $this->Form->create('User');
echo $this->Form->input('nombre', array('label' => 'Nombre Completo:'));
echo $this->Form->input('username', array('label' => 'Nombre de usuario:'));
echo $this->Form->input('password', array('type' => 'password', 'label' => 'Contraseña:'));
echo $this->Form->input('rol', array('label' => 'Rol del usuario:', 'type' => 'select', 'options' => array('ADMINISTRADOR' => 'Administrador', 'USUARIO' => 'Usuario')));
echo $this->Form->input('departamento_id', array('label' => 'Departamento:'));
echo $this->Form->end('Guardar');
我已将变形规则添加到我的西班牙语命名表中:
Inflector::rules('plural', array('irregular' => array('departamento' => 'departamentos')));
这是我的“添加用户”表单的屏幕截图,字段“Departamento”显示为空,但我的“Departamentos”表中有数据:
由于
答案 0 :(得分:1)
只需添加以下内容:
$this->set('departamentos',$this->User->Departamento->find('list',array('order'=>'nombre')));
在UsersController::add()
函数中。 CakePHP应该从视图中的$ departamentos变量自动创建SELECT选项。