所以我的控制器中有以下内容:
$employee_options = array(
'conditions' => array('Employee.id' => $this->employee_id),
'recursive' => 4,
);
$employees = $this->Employee->find('all', $employee_options);
$this->set('employees', $employees);
$initial_dept_id = $this->Employee->field('department_id', array('id' => $this->employee_id));
首先我喜欢这个
$index_chosen = $this->Employee->field('index_chosen_section', array('id' => $this->employee_id));
$this->set('initial_dept_id', $initial_dept_id);
$this->set('$index_chosen', $index_chosen);
然后我将$ index_chosen更改为此,当我无法使其工作时:
$index_chosen = $employees[0];
$this->set('initial_dept_id', $initial_dept_id);
$this->set('$index_chosen', $index_chosen);
以下是我的观点:
<pre>
<?php print_r($employees[0]) ?>
</pre>
<pre>
<?php print_r($index_chosen); ?>
</pre>
两种方法(在控制器中)导致$ index_chosen不显示任何内容。在第二种方法中,我打印相同的东西,但只有第一个节目。有关为什么会发生这种情况的任何想法?感谢
答案 0 :(得分:0)
请勿在{{1}}的前半部分使用$
:
->set()
在过去,我相信Cake还会自动调整您的变量,因此根据您使用的版本,在进行上述更改后删除$this->set('$index_chosen', $index_chosen); // <-- NO
$this->set('index_chosen', $index_chosen); // <-- YES
,如果$
变量仍然没有显示在您的视图中,您可以尝试使用$index_chosen
(无论如何,这是您的变量的推荐案例)。
$indexChosen
旁注:
设置多个变量时,不是将每个变量放在自己的行上,而是使用PHP's compact()
的常见做法:
$indexChosen = $employees[0];
$this->set('indexChosen', $indexChosen); // <-- EVEN BETTER