У меня есть один модуль → пользователи.
->modules
->users
->controllers
->models
->views
->Users.php
Я создал "config.php" внутри "config" папки из "пользовательских" модулей.
->modules
->users
->config
->config.php
->controllers
-> List of Controllers
->models
-> List of models
->views
-> List of Views
->Users.php
И я дал путь к каталогу config.php в методе init() Users.php, так как
Модули/пользователи /Users.php
<?php
namespace app\modules\users;
class Users extends \yii\base\Module
{
public $controllerNamespace = 'app\modules\users\controllers';
public $commonModel = 'app\modules\users\models\Users';
public function init()
{
parent::init();
\Yii::configure($this,require(__DIR__.'/config/config.php'));
}
}
Но, это дает ошибку, как
Предупреждение PHP - yii\base\ErrorException
Msgstr "Недопустимый аргумент для foreach()".
Скриншот
Я беру ссылку из Yii2.0 Guide, чтобы включить путь внутри метода init().
Пожалуйста, помогите мне исправить эту проблему.
Благодарю.
Из того, что я вижу, вы передаете PHP-код в свой файл конфигурации, а не передаете в массив конфигурации
Вместо этого...
\Yii::configure($this, require(__DIR__.'/config/config.php'));
Попробуйте сделать это...
$config = require(__DIR__.'/config/config.php');
\Yii::configure($this, $config);
В вашем файле config.php
вы должны возвращать массив, если вы используете файл конфигурации базового приложения и добавляете к нему, тогда он должен быть настроен так, как это уже
require
которая выдает это исключение
Проблема возникает из файла конфигурации. Файл конфигурации должен возвращать массив. Убедитесь, что файл конфигурации выглядит следующим образом:
<?php
$config = [
'name1' => 'value1',
'name2' => [/* something here */],
];
return $config;
вы редактируете модель файла и удаляете код:
/**
* @inheritdoc
* @return DriverSearch the active query used by this AR class.
*/
public static function find()
{
return new DriverSearch(get_called_class());
}