• Что выведет следующий код php?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Выполняем программу:

    1. Видим echo, значит нужно распечатать её аргумент(-ы в нашем случае, т.к. их два, указаны через запятую. echo - это и функция и языковая коснтрукция, можно вызвать со скобками, можно без, через запятую просто передаём аргументы, сколько хотим)
    2. Начинаем смотреть, какие аргументы надо распечатать: 1 . print(2) и 3
    3. Первый аргумент составной, требует доп. вычислений. Начинаем его вычислять:
    4. Сначала конкатенируем строку "1" с РЕЗУЛЬТАТОМ ВЫПОЛНЕНИЯ ФУНКЦИИ print(2).
    5. Чтобы получить результат функции, её надо выоплнить. Выполняем print(2) -> печатается двойка. Вот откуда у нас первый символ "2".
    6. Результат выполнения функции print() всегда 1.
    Returns 1, always.

    7. Значит результатом конкатенации у нас будет "1" . "1" -> значит первый аргумент для печати = "11" Печатаем его, на экране у нас теперь 211.
    8. Печатаем второй аргумент "3". Получилось 2113.
    Ответ написан
    1 комментарий
  • Как организовать ajax запрос, при этом обновление сделать через pjax, yii?

    qonand
    @qonand
    Software Engineer
    Если нужно обновить гридвью после сабмита формы, тогда можно просто перезагрузить PJAX-контейнер, например:
    $('#driverPjax').on('pjax:end',   function() { 
    	$.pjax.reload({
    		container : '#notes', timeout: '5000',
    	});		
    });

    Если же нужно обновлять гридвью непосредственно после выбора из выпадающего списка, тогда функцию перезагрузки контейнера нужно повесить на соответствующее событие выпадающего списка, например:
    onChange = "$.pjax.reload({container : '#notes', timeout: '5000'});"
    Ответ написан
  • Yii2 Как сделать регистрацию в модальном окне?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    загрузить автоматом данные

    Термин надо расписать. Миллион вариантов, что под ним скрывается.

    Далее:
    class Login не имеет ни валидации ни чего. Как же Вы из него activeForm строите потом?

    $model->load(Yii::$app->request->post()) сработает если в POST будет массив вида [название класса модели][атрибут] например ['Login']['userName']

    Я бы не делал это велосипед. Взял бы стандартный для yii метод авторизации и просто засунул с модальное окно.
    Форму слать не ajax а обычным post иначе смысл? Пользователь авторизуется на сервере, а клиент об этом еще знать не будет. Так что можно по клику на некую кнопку, открывать модалку, делать get ajax получать в ответ код формы, вставлять в модалку эту форму, а далее просто submit, а на сервере получение, логин и редирект на предыдущую страницу
    Ответ написан
    2 комментария
  • Как добавить анимацию для виджета Alert?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Вариант 1: Выкинуть стандартный виджет, сделать через alertifyjs.com
    Вариант 2: Использовать https://daneden.github.io/animate.css/
    Вариант 3: Написать в css свой велосипед
    Ответ написан
    1 комментарий
  • Как правильно построить запрос в ActiveDataProvider?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый день.
    Используйте связи для таблиц.
    Например:
    public functon getType(){
       return $this->hasOne(Model_name::className(), ['category' => 'type_id'])
    }

    В контроллере ActiveDateProvider() получите так:
    $query = Device::find()->with('type')
    $device = new ActiveDataProvider([
        'query' => $query
    ])

    В gridview получить значение можно так:
    [
       'attribute' => 'id'
       'value' => 'type.name'
    ]

    Подробней здесь(Работа со связными данными)
    Ответ написан
    Комментировать