Yii2: Custom named app doesn't work

Created on 7 Apr 2015  路  2Comments  路  Source: yiisoft/yii2

I used Advanced Templated. Runned init.
Both applications frontend and backend works.
Then I copied directory backend to directory api.
Changed namespace in all files, modified config.
And receiving error:

exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".' in /media/truecrypt1/wizapi/vendor/yiisoft/yii2/base/Module.php:461
Stack trace:
#0 /media/truecrypt1/wizapi/vendor/yiisoft/yii2/web/ErrorHandler.php(80): yii\base\Module->runAction('site/error')
#1 /media/truecrypt1/wizapi/vendor/yiisoft/yii2/base/ErrorHandler.php(95): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException))
#2 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException))
#3 {main}
Previous exception:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/login".' in /media/truecrypt1/wizapi/vendor/yiisoft/yii2/base/Module.php:461
Stack trace:
#0 /media/truecrypt1/wizapi/vendor/yiisoft/yii2/web/Application.php(83): yii\base\Module->runAction('site/login', Array)
#1 /media/truecrypt1/wizapi/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 /media/truecrypt1/wizapi/api/web/index.php(18): yii\base\Application->run()
#3 {main}

Next exception 'yii\web\NotFoundHttpException' with message 'Page not found.' in /media/truecrypt1/wizapi/vendor/yiisoft/yii2/web/Application.php:95
Stack trace:
#0 /media/truecrypt1/wizapi/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 /media/truecrypt1/wizapi/api/web/index.php(18): yii\base\Application->run()
#2 {main}

My config files in api/
main.php:

<?php

$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'),
    require(__DIR__ . '/../../common/config/params-local.php'),
    require(__DIR__ . '/params.php'),
    require(__DIR__ . '/params-local.php')
);

return [
    'id' => 'app-api',
    'basePath' => dirname(__DIR__),
    'controllerNamespace' => 'api\controllers',
    'bootstrap' => ['log'],
    'modules' => [],
    'components' => [
        'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => true,
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],

    ],
    'params' => $params,
];

main-local.php:

<?php

$config = [
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '******************************************',
        ],
    ],
];

if (!YII_ENV_TEST) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

return $config;

params.php:

<?php
return [
    'adminEmail' => '[email protected]',
];

params-local.php:

<?php
return [
    'adminEmail' => '[email protected]',
];

I also for test added in composer.json below code:

"autoload": {
        "psr-4": {"api\\": "api/"}
    }

And worked. But I don't understand why application frontend and backend works without this code.

Anyone can explain me what I'm doing wrong?

Most helpful comment

All 2 comments

@disem nope, thank you it helps

Was this page helpful?
0 / 5 - 0 ratings