PHP 致命错误 – yii\base\ErrorException 在 YII2 中调用未定义的方法 Yii::app()
PHP Fatal Error – yii\base\ErrorException Call to undefined method Yii::app() in YII2
public function actionIndex()
{
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
if (Yii::app ()->user->isGuest) {
$this->redirect ( Yii::app ()->createUrl ( 'site/login' ) );
} else {
// Export Scenario
$exportScenario = 'incoming';
$exportScenario2 = 'outgoing';
$exportScenario3 = 'missed';
// Default date
$date = null;
$fromDate = null;
$toDate = null;
//Model definitions
$model = new Logs ();
//get incoming calls
$incalls = $model->getInCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $incalls );
$inDataProvider = new yii\data\ArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
//get outgoing calls
$outcalls = $model->getOutCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $outcalls );
$outDataProvider = new CArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
//get missed calls
$missedcalls = $model->getMissedCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $missedcalls );
$missedDataProvider = new CArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
// For Excel exporting and getting printable versions
if (isset ( $_GET ['export'] )) {
$exportHash = $_GET ['id'];
if ($_GET ['export'] == 'excel') {
// Exporting excel
Common::export ( null, 'get', $exportHash );
} else {
// Getting printable html
Common::export ( null, 'get', $exportHash, 'html' );
}
}
$this->render('index', [
'exportScenario' => $exportScenario,
'exportScenario2' => $exportScenario2,
'exportScenario3' => $exportScenario3,
'inDataProvider'=>$inDataProvider,
'outDataProvider'=>$outDataProvider,
'missedDataProvider'=>$missedDataProvider,
'filtersForm' => $filtersForm,
'date'=>$date,
'model'=>$model,
'incalls'=>$incalls
]);
}
}
我是 运行 这个站点 http://localhost/master/web/index.php?r=site/index,但是出现错误 调用未定义的方法 Yii::app()。我正在使用 yii2 基本应用程序。任何帮助将不胜感激。
以上代码摘自sitecontroller.php,错误源于这一行
if (Yii::app ()->user->isGuest) {
$this->redirect ( Yii::app ()->createUrl ( 'site/login' ) );
}
在 Yii2 中没有 Yii:app()
但 Yii::$app
所以你应该使用
if (Yii::$app->User->isGuest) {
$this->redirect (Yii::$app->createUrl ( 'site/login' ) );
} else {
.....
public function actionIndex()
{
// renders the view file 'protected/views/site/index.php'
// using the default layout 'protected/views/layouts/main.php'
if (Yii::app ()->user->isGuest) {
$this->redirect ( Yii::app ()->createUrl ( 'site/login' ) );
} else {
// Export Scenario
$exportScenario = 'incoming';
$exportScenario2 = 'outgoing';
$exportScenario3 = 'missed';
// Default date
$date = null;
$fromDate = null;
$toDate = null;
//Model definitions
$model = new Logs ();
//get incoming calls
$incalls = $model->getInCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $incalls );
$inDataProvider = new yii\data\ArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
//get outgoing calls
$outcalls = $model->getOutCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $outcalls );
$outDataProvider = new CArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
//get missed calls
$missedcalls = $model->getMissedCalls();
// For filtering grid
$filtersForm = new GridForm ();
// Get filtered data
$filteredData = $filtersForm->filter ( $missedcalls );
$missedDataProvider = new CArrayDataProvider ( $filteredData, [ // Define pagination
'pagination' => [
'pageSize' => 10000
]
] );
// For Excel exporting and getting printable versions
if (isset ( $_GET ['export'] )) {
$exportHash = $_GET ['id'];
if ($_GET ['export'] == 'excel') {
// Exporting excel
Common::export ( null, 'get', $exportHash );
} else {
// Getting printable html
Common::export ( null, 'get', $exportHash, 'html' );
}
}
$this->render('index', [
'exportScenario' => $exportScenario,
'exportScenario2' => $exportScenario2,
'exportScenario3' => $exportScenario3,
'inDataProvider'=>$inDataProvider,
'outDataProvider'=>$outDataProvider,
'missedDataProvider'=>$missedDataProvider,
'filtersForm' => $filtersForm,
'date'=>$date,
'model'=>$model,
'incalls'=>$incalls
]);
}
}
我是 运行 这个站点 http://localhost/master/web/index.php?r=site/index,但是出现错误 调用未定义的方法 Yii::app()。我正在使用 yii2 基本应用程序。任何帮助将不胜感激。
以上代码摘自sitecontroller.php,错误源于这一行
if (Yii::app ()->user->isGuest) { $this->redirect ( Yii::app ()->createUrl ( 'site/login' ) ); }
在 Yii2 中没有 Yii:app()
但 Yii::$app
所以你应该使用
if (Yii::$app->User->isGuest) {
$this->redirect (Yii::$app->createUrl ( 'site/login' ) );
} else {
.....