2015-06-02 54 views
3

Iam新增到yii 2.0我想在佈局文件中顯示所有項目名稱。如何在佈局文件main.php中查找所有條件yii2

我可以使用在layouts-> main.php

   <?php $model = Project_manage::find()->all(); ?> 

以下代碼當我在主.PHP使用此代碼

以下錯誤會

Error (#1) 

An internal server error occurred.(These Error are came) 

在我的Bootstrap文件中放置以下代碼

Yii::setAlias('common', dirname(__DIR__)); 
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend'); 
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend'); 
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console'); 

Event::on(View::className(), View::EVENT_BEFORE_RENDER, function() { 
$model = Project_manage::find()->all(); 
Yii::$app->view->params['model'] = $model; 
}); 
當上面的代碼放在

Fatal error: Class 'Event' not found in D:\wamp\www\yii2\common\config\bootstrap.php on line 7 

在警予2.0如何使用查找佈局文件中的所有條件

請幫我解決這個問題會顯示210

以下錯誤,

感謝。

+1

你有沒有在看日誌文件內部服務器錯誤的原因是什麼?這可能是1000個不同的事情。你有沒有嘗試評論這條線,看看它是否有效呢?請添加更多信息。您所指的「ActiveQuery」功能應該與其他地方一樣在佈局文件中工作。 – Blizz

+0

在評論$ model行後它工作正常。但是啓用它顯示的代碼是錯誤的 –

+0

再次檢查您的日誌!在這裏我沒有看到任何命名空間,所以無論是在文件頂部有一個'use'語句,還是根本找不到'Project_manage'類。或者沒有確切的錯誤信息,我們不會知道的其他任何東西。 – Blizz

回答

2

您可以使用EVENT_BEFORE_RENDER:在將這個您共同\設置\ bootstrap.php中

use yii\base\Event; 
    use yii\base\View; 

    Event::on(View::className(), View::EVENT_BEFORE_RENDER, function() { 

     $model = Project_manage::find()->all(); 
     Yii::$app->view->params['model'] = $model; 

    }); 

然後在你的主要佈局可以直接使用你的模型:

$model= $this->params['model']; 
+0

當我使用上面的代碼,我得到以下錯誤 解析錯誤:語法錯誤,意想不到的'功能'(T_FUNCTION),期待標識符(T_STRING)在D:\ wamp \ www \ yii2 \ frontend \ config \ bootstrap.php第2行 MY在共同\配置\ bootstrap.php中 <?PHP的 類函數事件() { \t事件::上(查看::的className(),查看:: EVENT_BEFORE_RENDER,功能碼( ){ \t $ model = Project_manage :: find() - > all(); \t Yii :: $ app-> view-> params ['model'] = $ model; \t}); } ?> –

+0

你可以請更新你的問題,並顯示你在引導文件中放置了什麼。在我的回答中,我沒有寫出我在你的評論中看到的功能。 – Chinmay

+0

先生,現在我更新我的代碼請再次檢查我的代碼 –

相關問題