2012-04-30 66 views
0

我有一個關係遊戲belongsTo類型。在遊戲的添加視圖中,我看到一個下拉列表,其中包含各種類型的標題,這些標題在我的表中都是VARCHAR。但是,當我選擇一個,然後按保存,這樣可以節省型的,而不是標題的ID(eventhough在我的下拉列表中,我選擇了標題當我創建在phpMyAdmin一場比賽,一切工作正常 我的代碼:。Cakephp不保存下拉列表

在GameController

GameModel

class Game extends AppModel { 

    public $name = 'Game'; 
    public $primaryKey = 'id'; 
    public $belongsTo = array 

    (
    'Type' => array (
     'className' => 'Type', 
     'foreignKey' => 'type_id' 
    )); 

add函數

public function add() { 
$types = $this->Game->Type->find('list',array('fields' => array('title'))); 
$this->set('types',$types); 

    if ($this->request->is('game')) { 
     if ($this->Game->save($this->request->data)) { 
      $this->Session->setFlash('Your game has been created.'); 
      $this->redirect(array('action' => 'index')); 
     } else { 
      $this->Session->setFlash('Unable to add your game.'); 
     } 
    } 
} 

添加視圖類型的

<h1>Add Game</h1> 
<?php 
echo $this->Form->create('Game',array('action' => 'edit')); 
echo $this->Form->input('tablename',array('rows' => '1')); 
echo $this->Form->input('date'); 
echo $this->Form->input('type_id'); 
echo $this->Form->end('Save Games'); 
?> 

我希望有人能找到解決方案。如果需要更多信息,請不要猶豫,問。

謝謝你在前進和良好的祝願。

回答

0
//Add function in your controller 

$types= $this->Game->find('list', array(
    'conditions' => array('Game.type_id'), 
    'fields'  => array('Game.id', 'Game.title') 
)); 
$this->set(compact('types')); 

// view 
echo $this->Form->input('type_id', array(
    'type' => 'select', 
    'options' => $types, 
    'empty' => false 
)); 
+0

sry剛剛發現我使用「types_id」而不是type_id,但現在我有下一個問題,但非常感謝您的極快響應!你能幫我解決我的新問題嗎? –

+0

當然,新問題是什麼? –

+0

我編輯了最初的帖子!只要閱讀前幾行。實際上,如果標題(VARCHAR),它會保存我的類型的ID。儘管在我的Dropdown中,我可以看到選擇的標題。表是正確的格式,如果我在PHPmyadmin中創建一個遊戲,一切工作正常。 –