Я хотел бы, чтобы мое приложение автоматически меняло шаблон, поэтому я создал эту структуру frontend/web/themes/myTheme
, следуя http://www.yiiframework.com/doc-2.0/guide-output-theming..html я добавил этот код в frontend/config/main.php
'components' => [
'view' => [
'theme' => [
'basePath' => '@app/themes/myTheme',
'baseUrl' => '@web/themes/myTheme',
'pathMap' => [
'@app/views' => '@app/themes/myTheme',
],
],
],
],
однако я продолжал получать сообщение об ошибке, что «/var/www/html/myProject/app/frontend/views/site/index.php» Файл представления не существует???
я также пытался поместить эту функцию в контроллер на основе Как изменить значение по умолчанию просмотреть путь в Yii2?
public function getViewPath()
{
return Yii::getAlias('@web/themes/myTheme/site');
}
поэтому мой вопрос: 1. как я могу изменить путь по умолчанию для представлений? 2. как я могу сделать это автоматически, так как я не могу изменить настройки common/config/main.php во время сеанса?
контроллер сайта
class SiteController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['index'],
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
/**
* Displays homepage.
*
* @return mixed
*/
public function actionIndex()
{
$searchModel = new ProductSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
}