Как разобраться в коде yii2?

Здравствуйте. Буквально сегодня приступил к знакомству с yii2 и сразу же столкнулся с трудностями понимания кода.
В документации прекрасно описан функционал yii, но совсем не уделено внимание разбору кода. Например: при создании формы мы создаем модель EntryForm, в которой описываем функцию
public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
        ];
    }

Как мне понимать это правило? Далее мы создаем форму во view
<?php $form = ActiveForm::begin(); ?>

    <?= $form->field($model, 'name')->label('Логин') ?>
    <?= $form->field($model, 'email')->label('Пароль') ?>

    <div class="form-group">
        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    </div>

<?php ActiveForm::end(); ?>

Как понять эти строки, а конкретно то, что находится в скобках после field
<?= $form->field($model, 'name')->label('Логин') ?>
 <?= $form->field($model, 'email')->label('Пароль') ?>

Надеюсь, что найдутся люди, которые в дальнейшем смогут помогать разбираться в коде yii2. Заранее спасибо за ответы!
  • Вопрос задан
  • 438 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
rules в моделе - это правила валидации, о том какие бывают валидаторы в yii2 и как написать свой можно читать тут:
https://github.com/yiisoft/yii2/blob/master/docs/g...
Относительно формы, она создается с помощью виджета ActiveForm и что бы до конца все понять, надо понимать как устроены виджеты в yii, но конкретно по вопросу:
$form - переменная в которой объект виджета, ->field() - это метод модели в который мы передаем саму модель и название аттрибута для которого надо сгенерировать инпут, label() метод для смены label, но они обычно в моделе указаны. Советую поставить ide типа phpStorm, что бы проще перескакивать по классам и методам и полность посмотреть код activeForm.

Вообще советую прочитать полностью официальный гайд, много станет понятно:
www.yiiframework.com/doc-2.0/guide-README.html
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Документация для yii2 достаточно хорошо написана.
Не знаю, по какой Вы пытаетесь изучить framework, но попробуйте вот по этой, от разработчиков.
По вопросу следующее.
Первый Ваш пример проверяет данные на валидность, правильно ли заполнена форма. Поля "name", "email" должны быть обязательно заполнены, вдобавок "email" должен быть корректным e-mail адресом.
Два следующих примера генерируют обычную html форму. Один текстовый input для ввода имени, второй для ввода email.

p.s.

Буквально сегодня приступил к знакомству с yii2 и сразу же столкнулся с трудностями понимания кода.

Если Вы приступили изучать framework одновременно с php, то для начала изучите основы php.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Как мне понимать это правило?

Используйте свои когнитивные способности.

Напишите код, согласно примерам в документации, добейтесь его выполнения, а дальше для исследования, как и что работает - вооружитесь xdebug-ом.
Конкретно по rules - найдите код в фреймворке, использующий этот метод и разберитесь в том, как он работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы