CakePHP를 배우기 위해 재미있는 사이트를 만들었지 만, 어떤 이유로 인해 선택한 항목을 표시하기 위해 여러 개의 드롭 다운 상자를 선택할 수 없습니다. 이 예에서 비디오 게임은 여러 가지 어려움을 겪을 수 있습니다 (쉽고, 보통, 어렵습니다). 내 게임 편집 페이지에 난 어려움을 선택하는 다중 선택 상자가 있습니다. 세 가지 어려움을 모두 보여 주며 선택할 수 있으며 올바르게 저장됩니다. 그러나 편집 페이지로 돌아 가면 이전에 저장 한 항목이 선택된 것으로 강조 표시되지 않습니다. 레코드가 데이터베이스에 올바르게 저장되고 있는지 확인했습니다.HABTM 드롭 다운 항목이 선택되지 않았습니다.
테이블 : 게임 어려움 difficulties_games
모델 :
class Game extends AppModel {
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Difficulty' =>
array(
'className' => 'Difficulty',
'joinTable' => 'difficulties_games',
'foreignKey' => 'game_id',
'associationForeignKey' => 'difficulty_id',
'unique' => 'true'
)
);
}
class Difficulty extends AppModel {
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Game' =>
array(
'className' => 'Game',
'joinTable' => 'difficulties_games',
'foreignKey' => 'difficulty_id',
'associationForeignKey' => 'game_id',
'unique' => 'true'
)
);
}
컨트롤러 :
$game = $this->Game->findById($id);
$this->set('difficulties', $this->Game->Difficulty->find('list'));
보기 (edit.ctp) :
echo $this->Form->input('Difficulty');
이것은 내가 누락 된 단순한 것이어야하지만 HABTM에 대한 책을 읽었으며 여기에서 검색하여 다중 선택 상자를 많이 찾을 수 없었습니다.
UPDATE :
echo $this->Form->create('Game');
echo $this->Form->input('name');
echo $this->Form->input('system_id');
echo $this->Form->input('genre_id');
echo $this->Form->input('Difficulty');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('Save Game');
컨트롤러에서 수행중인 작업에 따라 다릅니다. 'edit()'함수는 어떻게 생겼는가? 변수'$ game'로 무엇을하고 있습니까? –