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?
Did you add it's alias to https://github.com/yiisoft/yii2-app-advanced/blob/master/common/config/bootstrap.php ?
@disem nope, thank you it helps
Most helpful comment
Did you add it's alias to https://github.com/yiisoft/yii2-app-advanced/blob/master/common/config/bootstrap.php ?