2 つのモデル間に hasone 関係を実装しようとしていますが、2 番目のモデル (最初のモデルに属するモデル) で可能なオプションを使用して「追加」フォームをオートコンプリートすることはできません。これは私のコードです:
- モデル 1: item.php
<?php
class Item extends AppModel{
var $name = 'Item';
var $primaryKey = 'id';
var $hasOne = 'CoverImage';
}
?>
- モデル 2: cover_image.php
<?php
class CoverImage extends AppModel{
var $name = 'CoverImage';
var $primaryKey = 'id';
var $belongsTo = array(
'Item' => array(
'className' => 'Item',
'foreignKey' => 'item_id'
));
}
?>
- モデル 2 のビューを追加: add.ctp
<?php echo $this->Form->create('CoverImage',array('url' => array('controller' => 'admins', 'action' => 'add')));?>
<fieldset>
<legend><?php __('Info'); ?></legend>
<?php
echo $this->Form->input('item_id');
echo $this->Form->input('description');
?>
</fieldset>
<?php echo $this->Form->end(__('Create', true));?>
Cake のドキュメントにあるこの関係については、追加ビューでitem_idフィールドにドロップダウン リストが表示され、このCoverImageが属するアイテムを選択できるはずですが、ドロップダウンは空です (はい、私はitems テーブルにすでにいくつかの項目があります)。
たぶん私は何かを見逃しているか、何か間違ったことをしましたが、それを理解することはできません. 手がかりを事前にどうもありがとう!
編集
私が今気づいたことの1つは、私がこれを行う場合:
echo $this->Form->input('item_id', array('type'=>'text'));
これの代わりに:
echo $this->Form->input('item_id');
*item_id* フィールドを追加/編集できます。テキスト ボックスでその値を確認できます。ただし、他のものを離れると、空のドロップボックスが表示され、CoverImageを追加/編集しようとすると機能せず、空の白いページが表示されるだけで、エラーはありません...
これが何かのきっかけになるのかな…