2016-11-15 80 views
1

所以我开始考虑CakePHP,我只是做了一些测试用例来看看CakePHP是否能满足我所有的需求。CakePHP 3 - 使用定制表中的数据填充选择下拉列表

我有一个自定义表(表名:角色):

id role sub_site 
1 Role 1 0 
2 Role 2 0 
3 Role 3 0 
4 Role 4 0 
5 Role 1 1 

在我的控制器(DC型的用户),我有一个基于所有反馈这里的下面的代码。

$this->loadModel("roles"); 
$rolesList = $this->roles->find('list', array(
     'conditions' => array('sub_site' => '0'), 
     'fields' => array('id', 'role') 
)); 
$this->set(compact('rolesList')); 


I have the following in the view 

$this->Form->input('role', array('label'=>false, 
       'div'=>false, 
       'type'=>'select', 
       'empty'=>'-- select one --', 
       'options'=>$rolesList)); 

然而,输出结果如下:

<select name="role" required="required" id="role"> 
<option value="">-- select one --</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
</select> 

所有我想要的是输出如下:

<select name="role" required="required" id="role"> 
<option value="">-- select one --</option> 
<option value="1">Role 1</option> 
<option value="2">Role 2</option> 
<option value="3">Role 3</option> 
<option value="4">Role 4</option> 
</select> 

请注明,因为这是假设很简单这里有什么问题只是填充?

+0

看起来像所有好..举行$角色列表的调试值,数据实际上是如何来? –

+0

抱歉,但我如何才能调试值,我是新来这个框架:-( – Skobbejak

+0

希望这有助于:@ManoharKhadka 选择 roles.id AS'roles__id', roles.role AS'roles__role' FROM 角色的角色 WHERE sub_site = 0 rolesList(阵列) CREATE TABLE'roles'( 'id' INT(11)NOT NULL, 'role' VARCHAR(255 )NOT NULL, 'sub_site' int(11)NOT NULL )ENGINE = InnoDB DEFAULT CHARSET = latin1; INSERT INTO'roles'('id','role','sub_site')值 (1,'Recruiter',0), (2,'Moderator',0), (3,'Line Manager ',0), (4,'Admin',0), (5,'Super Admin',1); – Skobbejak

回答

0

我正在使用此方法获得结果。在我的控制器:

$articles = TableRegistry::get('Transfers'); 
$make=$articles->find('list', ['keyField' => 'id','valueField' => 'make']); 
$this->set('make',$make); 

,然后在视图:

echo $this->Form->input('make',['type'=>'select','options'=>$make ,'empty'=>'-Select Make-','class'=>'form-control','templateVars'=>['class'=>'col-md-4']]); 

希望你能得到的结果。