cakephp从数据库创建选择
我正在尝试使用cakePHP开发一个表单cakephp从数据库创建选择,php,database,cakephp,drop-down-menu,Php,Database,Cakephp,Drop Down Menu,我正在尝试使用cakePHP开发一个表单 <div class="links form large-9 medium-8 columns content"> <?= $this->Form->create($link) ?> <fieldset> <legend><?= __('Add Link') ?></legend> <?php echo
<div class="links form large-9 medium-8 columns content">
<?= $this->Form->create($link) ?>
<fieldset>
<legend><?= __('Add Link') ?></legend>
<?php
echo $this->Form->control('section_id', ['options' => $sections]);
echo $this->Form->control('link');
//how do I make this display a text value
echo $this->Form->control('image_id', ['options' => $images]);
echo $this->Form->control('active');
echo $this->Form->control('created_on');
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
</div>
它创建一个select元素
<select name="image_id" id="image-id">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
1.
2.
3.
4.
我想让它显示的是
<select name="image_id" id="image-id">
<option value="1">item a</option>
<option value="2">item b</option>
<option value="3">item c</option>
<option value="4">item d</option>
</select>
项目a
b项
项目c
项目d
请注意,数据存储在数据库表“images”中,id字段为“id”,所需文本为“file”
如何使用所需的文本值而不是选项文本值的id值从数据库中创建select元素?要使用数据库中的数据创建select字段: 在ImagesTable中: 确保已正确设置显示字段:
$this->displayField('file');
在控制器中:
$images = $this->Images->find("list");
$this->set(compact("images"));
在模板文件中:
$this->Form->control("image_id", ["type" => "select"]);
更多信息:我应该把这个$this->displayField('file')放在哪里;在ImagesTable.php文件中应该有方法
initialize()
,该文件应该位于src/Model/Table中。可以将其设置为使用“id”字段,如果是,请将其更改为您希望被视为主要显示字段的字段。如果没有,只需在该方法的末尾添加一行即可。谢谢。我需要从自动生成的代码中实际更改的唯一部分是initialize()函数中的这一行。其他一切都已经按照你的建议了。它现在正按预期工作!