【问题标题】:Cakephp 2.0 Dropdown SelectCakephp 2.0 下拉选择
【发布时间】:2013-05-13 21:14:48
【问题描述】:

阅读并应用所有有关下拉列表的建议答案后,我的下拉列表中仍然没有结果。我是新手,解决这个问题真的让我头疼。我有与 belongsTO Client_Group 表相关联的客户表。 无论我对命名约定做了什么代码修改,我仍然无法将客户组的数据显示到我的下拉列表中。请帮忙!请帮忙!提前致谢

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= $this->Client->ClientGroup->find('list',array('type'=>'select', '字段'=> 数组('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'));
    ?>

【问题讨论】:

    标签: list cakephp drop-down-menu


    【解决方案1】:

    您有与 belongsTO Client_Group 表相关联的客户表。您想将 CLIENT GROUP 的数据显示到我的下拉列表中。

    $clientGroup = $this->客户端模型->客户端组模型->find('list'); $this->set(compact('clientGroup'));

    在你的 ctp 页面中这样做

    echo $this->Form->input('client_group_id');

    【讨论】:

      【解决方案2】:

      他们的会议太疯狂了!!试着这样工作,好吗? ;)

      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');
      

      【讨论】:

      • 感谢威廉爵士的帮助。它工作正常,一切顺利
      【解决方案3】:

      您是否尝试过使用驼峰式大小写来设置变量? $clientGroups'clientGroups'?这是正确的命名约定。

      【讨论】:

      • 戴夫爵士,它有效!非常感谢您的快速回复和正确的解决方案。我已经被困了 2 天,不知道该怎么做。现在我可以进入我项目的下一步了。非常感谢
      • 没问题。如果这回答了您的问题,您应该将其标记为这样(复选标记),这样其他人就不会花时间试图找出问题所在。编码愉快。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多