Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (16)

Наибольший вклад в теги

Все теги (131)

Лучшие ответы пользователя

Все ответы (1191)
  • Отказ в доступе консольному контролеру, как решить?

    slo_nik
    @slo_nik Автор вопроса
    Вопрос решился. Подсказали как правильно сделать.
    Необходим модуль apache2 mpm-itk.

    Этот модуль позволяет запускать виртуальные хосты от имени пользователя. Кроме всего прочего, это позволяет не задумываться о выставлении дополнительных прав на те, или иные папки и файлы на ваших сайтах.

    У меня Ubuntu 16.04., сервер apache2.
    1)Проверяем, собран ли apache2 c поддержкой mpm-itk
    в консоли
    apachectl -t -D DUMP_MODULES
    в результате ищем строку mpm_itk_module (static)
    2)Если нет, то устанавливаем модуль.
    sudo apt-get install libapache2-mpm-itk && sudo service apapche2 restart

    3) Редактируем конфигурацию виртуального хоста, вписываем туда следующую инструкцию
    <IfModule mpm_itk_module>
          AssignUserId your_user_name your_user_groupe
    </IfModule>

    4) Перезагружаем apache2.

    Всё, можно пользоваться.
    Ответ написан
  • Как реализовать два зависимых select-а?

    slo_nik
    @slo_nik
    Добрый день.
    Проще простого... Вот Вам даже три связанных списка. Параметры подставите свои.
    <?= $form->field($model, 'country_id')->dropDownList(Countries::getAllName(),
             [
                 'prompt' => 'Выбрать страну...',
                 'onchange' => '
                    $.post(
                     "'.Url::toRoute('ajax/list-regions').'",
                     {id : $(this).val()},
                     function(data){
                      $("select#regions").html(data).attr("disabled", false)
                     }
                    )
                 '
             ]
            ) ?>
    
            <?= $form->field($model, 'region_id')->dropDownList(Regions::getAllName(),
                [
                    'prompt' => 'Выбрать регион...',
                    'id' => 'regions',
                    'disabled' => $model->isNewRecord ? 'disabled' : false,
                    'onchange' => '
                       $.post(
                        "'.Url::toRoute('ajax/list-cities').'",
                        {id : $(this).val()},
                        function(data){
                         $("select#cities").html(data).attr("disabled", false)
                        }
                       )
                    '
                ]
               )
            ?>
    
            <?= $form->field($model, 'city_id')->dropDownList(Cities::getAllName(),
                  [
                      'prompt' => 'Выбрать город...',
                      'id' => 'cities',
                      'disabled' => $model->isNewRecord ? 'disabled' : false
                  ]
                 )
            ?>

    И пару действий в контроллере
    public function actionListRegions()
        {
             if(Yii::$app->request->isAjax)
             {
                 $id = (int)Yii::$app->request->post('id');
    
                 $regions = Regions::find()
                                     ->where('status=:status',[':status' => Regions::STATUS_ACTIVE])
                                     ->andWhere('country_id=:id', [':id' => $id])
                                     ->orderBy('name_ru')
                                     ->all();
                 $this->option  = '<option value="0">Выберите регион...</option>';
                 foreach($regions as $region){
                     $this->option .= '<option value="'.$region->id.'">'.$region->name_ru.'</option>';
                 }
             }
            return $this->option;
        }
    
        /**
         * @inheritdocs
         */
        public function actionListCities()
        {
            if(Yii::$app->request->isAjax)
            {
                $id = (int)Yii::$app->request->post('id');
    
                $regions = Cities::find()
                    ->where('status=:status',[':status' => Cities::STATUS_ACTIVE])
                    ->andWhere('region_id=:id', [':id' => $id])
                    ->orderBy('name_ru')
                    ->all();
                $this->option  = '<option value="0">Выберите город...</option>';
                foreach($regions as $region){
                    $this->option .= '<option value="'.$region->id.'">'.$region->name_ru.'</option>';
                }
            }
            return $this->option;
        }


    p.s. Тянуть сторонний плагин в большинстве случаев неоправдано.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (71)