0
私はcakePHPを使用してフォームを開発しようとしています。cakephp createデータベースから選択
<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 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>
をcreatsは、データがidフィールドとデータベーステーブル「画像」に格納されていることを
<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>
注意です'id'と 'file'の目的のテキスト
データベースから選択要素を作成するにはどうすればよいですかオプションテキスト値のid値ではなく、目的のテキスト値を使用していますか?
あなたImagesTableで:
あなたが適切に設定されている表示欄があることを確認してください:あなたのコントローラで
$this->displayField('file');
を:あなたのDBからのデータを使用して選択フィールドを作成するには
私はこれます$ this-> displayField( 'ファイル')を置けばいい。 – user3633383
ImagesTable.phpファイルには、src/Model/Tableにある 'initialize()'メソッドが必要です。 'id'フィールドを使用するように設定されている場合は、プライマリ表示フィールドと見なすフィールドに変更します。そうでない場合は、そのメソッドの最後に行を追加してください。 – Szymon
ありがとうございます。実際に自動生成されたコードから変更する必要があったのは、initialize()関数のこの行だけでした。他のすべてはあなたが提案した通りです。それは現在、必要に応じて動作しています! – user3633383