2013-05-19 97 views
0

閱讀並應用所有關於下拉列表的建議答案後,仍然在下拉列表中找不到結果。即時新手,它真的讓我頭痛解決這個問題。我有客戶表與所屬的Client_Group表關聯。 無論我對命名約定進行了哪些修改,我仍然無法將CLIENT GROUP的數據顯示到我的下拉列表中。請幫忙!請幫忙!由於事先Cakephp 2.0 Dropdown Select

CREATE TABLE `clients` (
    `id` int UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    `client_group_id` int , 
    `client_package_id` int , 
    `client_account_id` int , 
    `name` VARCHAR(40), 

CREATE TABLE `client_groups` (
    `id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` VARCHAR(50), 

    INSERT INTO `client_groups` (`id`,`name`) VALUES (1,'Top Company Holdings'); 
    INSERT INTO `client_groups` (`id`,`name`) VALUES (2,'Cadiz Group of Companies'); 

In CLient Model: 

    public $belongsTo = array(
     'ClientGroup' => array(
      'className' => 'ClientGroup', 
      'foreignKey' => 'client_group_id' , 
      'fields'  => 'name' 
      ), 

Client Group Model: 
    public $hasMany = array(  
     'Client' => array(
      'className'  => 'Client', 
      'foreignKey' => 'client_group_id', 
      'order'   => 'Client.name DESC') 

在客戶端控制器: $ clientgroups = $這個 - >客戶端 - > ClientGroup->找到( '列表',陣列( '類型'=> '選擇', '字段'= > array('id','name'), 'order'=> array('name'=>'ASC'))); $ this-> set(compact('clientgroups'));

In Client Add.ctp : 
    <?php echo $this->Form->input('client_group_id',array('option'=>$clientgroups , 
       'type'=>'select', 'empty'=>'Select Group')); 
    ?> 

回答

1

您是否嘗試過使用camel case設置變量? $clientGroups'clientGroups'?這是正確的命名約定。

+0

先生戴夫,它的工作原理!非常感謝你的快速回復和正確的解決方案。我一直在困擾着2天搞清楚該怎麼做。現在ican轉移到我的項目的下一步。非常感謝你 –

+1

沒問題。如果這回答了您的問題,您應該將其標記爲(複選標記),以便其他人不花時間試圖找出問題。快樂的編碼。 – Dave

0

他們的會議這瘋狂!試着以這種方式工作,好嗎? ;)

CREATE TABLE `clients` (
    `id` int UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    `group_id` int , 
    `package_id` int , 
    `account_id` int , 
    `name` VARCHAR(40) 
) 

CREATE TABLE `groups` (
    `id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    `name` VARCHAR(50) 
) 

INSERT INTO `groups` (`id`,`name`) VALUES (
1,'Top Company Holdings' 
); 
INSERT INTO `groups` (`id`,`name`) VALUES (
2,'Cadiz Group of Companies' 
); 

In CLient Model: 

public $belongsTo = array(
    'Group' => array(
     'className' => 'Group', 
     'foreignKey' => 'group_id' 
    ) 
); 

In your Cliente controller 

public function myFunction() 
{ 
... 
$groups = $this->Cliente->Group->find('list'); 
$this->set(compact('groups')); 
... 
} 

In your view 
echo $this->Form->input('group_id'); 
+0

感謝威廉先生的幫助。它工作,一切運行順利 –

2

您將客戶表與belongs_Group表相關聯。您想要將CLIENT GROUP的數據顯示到我的下拉列表中。

$ clientGroup = $ this-> CLient Model-> Client Group Model-> find('list'); $ this-> set(compact('clientGroup'));

,並在您的CTP頁面做這種

回聲$這個 - >形式 - >輸入( 'client_group_id');