Объект не найден при доступе к методам контроллера yii2

Привет, я новичок в структуре YII 2,

В настоящее время я учусь по следующему руководству http://www.yiiframework.com/wiki/490/creating-a-simple-crud-app-with-yii2-revised-12-20-2013/

Все работало хорошо, но когда я создал функцию в SiteController.php

i.e

 public function actionLogin()
    {

        if (!\Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        } else {
            return $this->render('login', [
                'model' => $model,
            ]);
        }
    }

и когда я получаю доступ к нему из браузера, как показано ниже,

http://localhost/basic/web/site/login/

Я получаю

Объект не найден! в моем браузере, но я могу получить доступ к функции индекса SiteController.php в соответствии с http://localhost/basic/web/

Не уверен, что мне здесь не хватает, не могли бы вы сообщить мне о проблеме?

Спасибо в Adavance

РЕДАКТИРОВАТЬ: для целей отладки я поместил инструкцию die в \ basic \ web \ index.php, по-видимому, он также не попадает в этот файл


person FR STAR    schedule 15.02.2015    source источник
comment
Может быть SiteController - контроллер по умолчанию. Попробуйте открыть в браузере http://localhost/basic/web/login/   -  person vitalik_74    schedule 15.02.2015
comment
Спасибо за ваш вклад, но я уже пробовал, что это не работает.   -  person FR STAR    schedule 16.02.2015


Ответы (1)


Ok. Я понимаю. Вы не используете .htaccess. Поместите .htaccess в веб-папку. И вам нужно проверить, доступен ли модуль Apache mod_rewrite.

#Options +FollowSymLinks
#IndexIgnore */*

#RewriteEngine on

# if a directory or a file exists, use it directly
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
#RewriteRule . index.php


    # use mod_rewrite for pretty URL support
    RewriteEngine on
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php

    # ...other settings...

Подробнее см. https://github.com/yiisoft/yii2/blob/master/docs/guide/start-installation.md#recommended-apache-configuration-

И urlManager в components вот так https://yadi.sk/i/TIKuhYPHehMJq

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => true,          
            'rules' => [
                '<_c:[\w\-]+>' => '<_c>/index',
                '<_c:[\w\-]+>/<_a:[\w\-]+>' => '<_c>/<_a>',
                '<_c:[\w\-]+>/<_a:[\w\-]+>/<id:\d+>' => '<_c>/<_a>',
            ],
        ],

Это работа - https://yadi.sk/i/7iOzHBm1ehMFE

person vitalik_74    schedule 16.02.2015
comment
Спасибо, чувак, ты спас положение. Не уверен, почему официальный тут ничего об этом не упомянул. - person FR STAR; 16.02.2015