2017-09-06 16 views
0

質問は私にはよく似ており、すでに質問されています。しかし、私のために働いています。Cakephp 2.9からコントローラへの変数の渡し方

ViewReportsController.php

class ViewReportsController extends AppController { 
public function index() { 
$count_table = 10;//sample variable that is available in view 
$this->set('count_tablen',$count_table); 
} 
} 

APP /ビュー/レイアウト/ default.ctpに

pr($count_tablen); 

今私は、未定義の変数says-エラーを取得しています:count_tablen [APP /ビュー/レイアウト/デフォルト.ctp、line 228]

+0

あなたはどなたですか?その変数はindex.ctpに対してのみ定義されています。 –

答えて

2

複数のコントローラアクションで使用される可能性のあるメインレイアウトテンプレートの変数を使用しています。したがって、提供したコード例は/view_reports/indexでのみ動作します。それはどこでも使用することができるようにあなたがAppControllerbeforeRenderコールバックでこれを行うために必要なレイアウトテンプレートで使用する変数を設定する場合: - あなたは、複数のレイアウトテンプレートを使用している場合

public function beforeRender() { 
    parent::beforeRender(); 
    $count_table = 10; 
    $this->set('count_tablen', $count_table); 
} 

次のことが確認できましたテンプレートは、変数を設定する前にbeforeRenderで使用されます: -

public function beforeRender() { 
    parent::beforeRender(); 
    if ($this->layout === 'default') { 
     $count_table = 10; 
     $this->set('count_tablen', $count_table); 
    } 
} 
+1

ありがとうございました。私は新しいことを学びました。そしてそれは完璧に正常に動作します – Manasa

関連する問題