Yii2

Yii2 и label у hidden-поля в ActiveForm

Для меня было полной неожиданностью, что yii2 по-умолчанию отображает label у скрытого поля. Но спрятать его достаточно просто:

echo $form->field($model, 'user_id')->hiddenInput()->label(false);

Как настроить папку public_html в Yii2

У новичков часто возникает проблема при выгрузке Yii2-приложения на хостинг с папкой public_html. По-умолчанию, Yii2 использует папку web для хранения index. php и статики.

Исправляется все достаточно просто. Добавляем символьную ссылку:

rm public_html && ln -s application/web public_html

AccessControl в Yii2 редиректит на site/login

AccessControl в Yii2 при запрете доступа (403 ошибка) перенаправляет на адрес site/login.

Поменять адрес можно в настройках компонента User:

'components' => [
        'user' => [
            'identityClass' => 'app\models\User', 
            'enableAutoLogin' => true, 
            'loginUrl' => ['/account/login']
        ],
    ],

Если указать loginUrl как null, то вместо редиректа будет отображаться 403 ошибка.

Подробнее в документации компонента yii\web\User.

Как передать Yii2 один-ко-многим в Backbone

При передаче коллекции со связями, нужно обязательно указать asArray (), иначе атрибут не заполняется в модели, бекбон ругается.

$collection = MindLeak::find()
    ->where([
        'user_id' => Yii::$app->user->identity->id,
        'is_predefined' => MindLeak::PREDEFINED_NO
    ])
    ->joinWith('examples')
    ->asArray()
    ->all();