我正在转换一个已有10年历史的PHP应用程序。在我的老板聘请了一位php顾问之后,他建立了一个CakePHP应用程序环境,我们正在学习。 (好玩,我知道)。此外,我来自javascript / sharepoint背景,并没有很多PHP经验。
作为测试,我创建了一个包含以下字段的基本地址表:firstname,lastname,state,phonenumber。我一直在使用司法联盟成员作为名字和其他测试数据来填充我的表格。把它烤得很好,默认的bootstrap页面正常工作。
我决定添加一个名为current status的下拉字段,现在只是为了保持简单,我想要选择:alive,dead。我在地址表中创建了列。
我创建了第二个名为status的表,并使用状态id作为foriegn键将第一个表中的status列指向状态表。
把我的新桌子烤了,然后把我的旧桌子砸了。
状态下拉不会让我选择死或活,如果我在字段中单击,我会得到一个向上或向下箭头,并根据您单击的那个,它会递增或递减1.所以第一个我点击它的时候插入一个0.如果我上升或下降,它会增加或带走一个。
我不确定我做错了什么,我猜我还需要添加一些额外的代码添加到MVC中?
答案 0 :(得分:1)
public function getStatus()
{
$opt = $this->Status->find('list', array(...));
return $opt;
}
然后将列表转到地址控制器,如下所示:
$this->loadModel('Status');
$opt => $this->Status->getStatus();
$this->set('opt', $opt);
现在您可以访问视图文件中的$ opt。 只需在视图中删除此行:
$opts = array('0' => __('dead'), '1' => __('alive'));
它应该有用。
答案 1 :(得分:0)
保持简单。在这一行广告你的表(只是为了解它是如何工作的):'status'为typ“tinyint(1)”。然后在视图文件中设置它:
$opts = array('0' => __('dead'), '1' => __('alive'));
创建输入字段时,请执行以下操作:
echo $this->Form->input('Address.status', array('options' => $opts, 'label'
=> __('Status')));
这应该有用。