繁体   English   中英

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中摘录的,错误源于此行

如果(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 {
    .....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM