2016-09-22 13 views
0

だから、私は、コントローラに次き:一貫性のない変数の設定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を変更し、この

$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 = $employees[0]; 
$this->set('initial_dept_id', $initial_dept_id); 
$this->set('$index_chosen', $index_chosen); 

が私の見解です:

両方のアプローチ(コントローラ内)により、$ index_chosenは何も表示されませんでした。 2番目のアプローチでは、私は同じことを印刷していますが、最初のものだけを表示しています。なぜこれが起こっているのかについてのアイデアはありますか?おかげ

+0

必ず指定してくださいあなたが使っているフレームワークのバージョン。 – Dave

答えて

0

があなたの->set()の前半に$を使用しないでください:過去には

$this->set('$index_chosen', $index_chosen); // <-- NO 

$this->set('index_chosen', $index_chosen); // <-- YES 

、私はケーキも自動行った後、あなたが使用しているどのバージョンによっては、あなたの変数をキャメルケースと考えています上記のように$を削除しても、$index_chosen変数が表示されない場合は、代わりに$indexChosenを試すことができます(これは、お使いの変数の推奨ケースです)。

$indexChosen = $employees[0]; 
$this->set('indexChosen', $indexChosen); // <-- EVEN BETTER 

側注:代わりに、それ自身の行にそれぞれを置くこと、それはPHP's compact()を使用するのが一般的だが、複数の変数を設定する場合

$this->set(compact('initial_dept_id', 'index_chosen')); 
関連する問題