Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cakephp创建optgroup_Php_Cakephp - Fatal编程技术网

使用cakephp创建optgroup

使用cakephp创建optgroup,php,cakephp,Php,Cakephp,我是cakephp的新手,在这方面我有一些困难: 从以下sql查询开始: select service_group.name as service_group_name, service_group.id as service_group_id, campaign.name as campaign_name, campaign.id as campaign_id from group_service join group_service_campaign

我是cakephp的新手,在这方面我有一些困难:

从以下sql查询开始:

         select service_group.name as service_group_name, service_group.id as service_group_id, campaign.name as campaign_name, campaign.id as campaign_id
      from group_service
      join group_service_campaign on group.service.id = group_service_campaign.group_service_id
      join campaign on group_service_campaign.campaign_id = campaign.id
      where campaign.active = 'Y'
      and campaign.id in ($in)
      and campaign.company_id = ${_SESSION['companyId']}
      order by group_service.name, campaign.name
我在控制器中将其转换为:

$var_campaign = $this->loadModel('Service_Group');
$var_campaign = $this->Group_Service->find('list', ['keyfield' => 'campaign_id', 'valueField' => 'campaign_name', 'groupField' => 'service_group_name'])
            ->join(['table' => 'service_group_campaign',
                'type' => 'inner',
                'conditions' => 'Service_Group.id = service_group_campaign.service_group_id'
            ])
            ->join(['table' => 'campaign',
        'type' => 'inner',
        'conditions' => 'service_group_campaign.campaign_id = campaign.id'
    ]);
    $var_campaign->where(['campaign.active' => 'Y']);
    $var_campaign->order(['grou_service.name,campaign.name']);
我的难点是如何使用它创建带有optgroup的select表单元素。 我一直在寻找类似的例子和问题,但我所做的一切都不起作用

我的看法是:

echo $this->Form->create();
echo $this->Form->input('id', array('label' => 'Services :', 'type' => 'select', 'empty'=> '-- Select --', 'options' => $var_campaign));
echo $this->Form->select("field", $var_campanha);

echo $this->Form->end();
当我在查询语句中使用find('list'…)时,我会得到一个空白的响应,如果我使用find('all'…),我会得到一个不完整的响应,因为所有的活动名称都不会响应,只有带有id的服务组名称

My optgroup显示纯文本,如:

{“id”:-1,“名称”:“现行提案”,“国防部”:“W”,“公司id”:10}

等等

我错在哪里

提前谢谢