设置变量不一致CakePHP

时间:2016-09-22 16:03:47

标签: cakephp

所以我的控制器中有以下内容:

$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不显示任何内容。在第二种方法中,我打印相同的东西,但只有第一个节目。有关为什么会发生这种情况的任何想法?感谢

1 个答案:

答案 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