@microf

YII2:Как получать настройки модуля в контроллере?

Здравствуйте. Делаю модуль загрузки файлов. Хочу сделать папку для сохранения настраиваемой при подключении модуля:
'modules' => [
     
        'image' => [
            'class' => 'common\modules\image\Image',           
            'folder_image' => '/uploads/image_news',
            'folder_image_preview' => '/uploads/image_news_preview',
        ],
        ],

В common/modules/image/Image.php Указываю эти "переменные"
public $folder_image;
 public $folder_image_preview;


А как мне их получать в контроллере модуля или модели модуля?
Чтобы можно было подставлять их, допустим, здесь, вместо /web/uploads
$file->saveAs(Yii::getAlias('@frontend') . '/web/uploads/' . $filename);
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Если Вы указываете свойство в модели, то обращаться надо так:
public $filename;

$model = new Image();
$model->filename;

Если Вы желаете указать это параметром модуля, то указывайте в классе модуля. Или в конфигурационном файле как параметр
'main' => [
            'class' => 'app\modules\main\MainModule',
            'layout' => 'main.php',
            'layoutPath' => '@app/modules/main/views/layouts',
            'params' => [
                'test' => 'test1',
                'test2' => 'test22'
            ]
        ],

Тогда обратиться можно так:
// Если указали в классе модуля public $filename
$main = Yii::$app->getModule('main');
echo $main->filename;

Или так:
// Если указали параметром в конфигурационном файле.
$main = Yii::$app->getModule('main');
echo $main->params['test'];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы