Рубрики
Uncategorized

Юк Беладжар Yii2 часть 4

Модель Модель в mvc – это часть, связанная с данными, поэтому модель – это класс… С пометкой php, yii, новички, учебник.

Юк Беладжар Yii2 (Серия из 6 Частей)

Модель

Модель в mvc – это часть, связанная с данными, поэтому модель – это класс, непосредственно связанный с данными, с самого начала для поиска данных, проверки, хранения данных и других.

Из официальных документов Yii2

Модели являются частью архитектуры MVC . Это объекты, представляющие бизнес-данные, правила и логику.

Вы можете создавать классы моделей, расширяя yii\base\Model или его дочерние классы. Базовый класс yii\база\Модель поддерживает множество полезных функций:

  • Атрибуты : представляют бизнес-данные и могут быть доступны как обычные свойства объекта или элементы массива.;
  • Метки атрибутов : укажите отображаемые метки для атрибутов;
  • Массивное назначение : поддерживает заполнение нескольких атрибутов за один шаг;
  • Правила проверки : обеспечивает ввод данных на основе объявленных правил проверки;
  • Экспорт данных : позволяет экспортировать данные модели в виде массивов с настраиваемыми форматами.

Класс Модель также является базовым классом для более продвинутых моделей, таких как Активная запись . Пожалуйста, обратитесь к соответствующей документации для получения более подробной информации об этих усовершенствованных моделях.

Далам модель класса Yii ян кита буат адала класс ян мерупакан наследство дари yii\база\модель в реализации обычно пишется с:

class NamaClass extends model {} 

Чтобы обсудить модель, чтобы мы соответствовали предыдущему примеру. Кроме того, чтобы мы соответствовали упражнениям, которые мы будем выполнять в будущем, мы обсудим это на примере.

Пример дела, верно мы используем простую систему лекций, как показано на диаграмме классов ниже:

Asusmsi Начало:

  • Так нам будет проще и мы сосредоточимся на Yii2, тренировке, которую мы не обсуждайте Отдел, Поколение, класс и другие.
  • Модель пользователя – это модель, связанная с классом идентификации
  • Лектор И Студенты – это деталь модели Пользователя .
  • Лектор мог бы преподавать много Курсов , но Курсы должны быть доступны только одному из преподавателей.
  • У студента не так много Расписания , и Расписание должно быть заполнено большим количеством Студент . так что мы будем носить модельную одежду Ядвалмахасисва для подключения модели Студент с Расписание .
  • У одного Курса может быть много Расписание a , a Расписание заполнено только одно Курсы .
  • Один Расписание должно заполнять только одно РуангКелас , один RuangKelas может быть заполнено много График .

Если в latihanlatihan нас раньше не было, мы используем проект yii2basic затем для этого латана мы создадим новый проект, здесь мы будем называть yii2campus . для установки и прочего, пожалуйста, ознакомьтесь со ссылками на https://www.yiiframework.com/doc/guide/2.0/en

Сначала Создайте Модель

В этом примере мы создадим модель лекторов (чтобы быть более совместимыми с cotoh, которые мы использовали ранее) модели используются для проверки ввода от пользователя.

Сначала нам нужно создать файл модели с именем Lecturer.php в папке модели , затем введите код ниже:

джика далам кодэ ада блок комментариев отдельно/* вкл. /атау/|/* выкл. */абайкан саджа карена иту фунгси пользовательский формат Eclipse IDE унтук менгираукан автоматический формат.

 'ID',
            'nama' => 'Nama',
            'tanggal_lahir' => 'Tanggal Lahir',
            'alamat_rumah' => 'Alamat Rumah',
            'foto' => 'Foto',
            'user_id' => 'User ID'
        ];
    }

    /**
     * aturan validasi model Dosen
     */
    public function rules()
    {
        return [
            /* off */
            [ [  'id','nama', 'tanggal_lahir' ],
                'required'
            ],
            [ [ 'id', 'user_id' ],
                'integer'
            ],
            [ [ 'nama', 'tanggal_lahir', 'alamat_rumah' ],
                'string',
                'max' => 45
            ],
            [ [ 'foto' ],
                'string', 
                'max' => 145
            ],
            [ [ 'id' ],
                'unique'
            ],
        ];
        /* on */
    }
}

Кетеранган:

  • пространство имен используется для задания декларативного имени в наборе файлов для логической группы, чтобы предотвратить хаос файла с одинаковым именем между файлами. простое пространство имен в качестве имени папки, в которой хранятся файлы.

  • используйте используется для объявления класса объекта, используемого в классе we.

  • класс Dosen расширяет \yii\db\ActiveRecord – это открывающий тег класса, который мы пробуждаем. класс класс мендекларасикан, Дюжина это имя или идентификатор класса, расширение объявление класса это наследование класса Активная запись . затем \yii\db\ActiveRecord другая форма объявления использование , если мы объявим использование \yii\db\ActiveRecord тогда класс deklaras может быть сделан таким, как класс Лектор расширяет ActiveRecord потому что мы уже сообщаем классу, что мы используем Active в объявлении использование .

  • публичная функция attributeLabels() – это метод, которым мы реализуем метод в классе Model.php , кита биса мэн переопределяет метод терсебут карена ActiveRecord.php мерупаканское наследство дари Model.php .

функция attrbuteLabels () собственная бердуна для изменения имени свойства (просто переменных) класса у нас становится именем, которое легче читать конечному пользователю. например имя_пользователя – имя пользователя или идентификатор – идентификационный номер преподавателя и другие.

  • правила публичной функции() то же, что атрибуты публичной функции() это метод, который мы реализовали из класса Model.php .

правила функции() функция для проверки правильности данных при вводе пользователем в соответствии с правилами набора kia. например

[ [ ‘идентификатор’,’имя’, ‘tanggal_lahir’ ], ‘обязательно’ ] означает, что поля Идентификатор, имя и tanggl_lahir не должны быть пустыми. примеры других [ [ ‘идентификатор’, ‘идентификатор пользователя’ ], ‘целое число’ ] идентификатор поля, идентификатор пользователя, целое число харуса бертипа. референси ленгкап валидатор дапат дилихат ди https://www.yiiframework.com/doc/guide/2.0/en/tutorial-core-validators

Как только модель будет готова, пришло время создать контроллер, как обычно, мы делаем контроллер другим, сначала создаем файл DosenController.php в папке контроллеры, затем введите код:

load(Yii::$app->request->post()) && 
        $model->validate()) {
            $modelCanSave = true;
        }

        return $this->render('create', [
            'model' => $model,
            'modelCanSave' => $modelCanSave
        ]);
    }
}
  • Тидак ада пербедаан денган контроллер себелумня ян перна кита буат ханья саджа далам деклараси использовать ада деклараси использовать приложение/модели/Досен полезно заявить, что мы используем модель Lecturer.php в этом классе.

  • модель-> загрузить , модель-> проверить функцию для вызова метода модели класса с помощью метода в соответствии с именем функции.

  • Yii::$приложение->запрос->опубликовать() , Yi::приложение by simple – это точка входа в скрипт, доступ к которой возможен по всему миру. запрос->отправить сообщение с помощью метода memanggil отправить запрос класса дари. метод нья сендири берхубунган денган параметр запроса

  • верните $this->рендеринг() рендеринг memanggilfsi.

  • $model Лектор(); создайте экземпляр лектора с именем модели.

  • $Modelcansave переменная, которая изменяется с помощью false.

затем мы создаем новую папку в представлении/лекторе, затем заполняем ее приведенным ниже кодом:

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
use yii\helpers\ArrayHelper;
?>


model siap disimpan!

Room form

field($model, 'id')->textInput() ?> field($model, 'nama')->textInput(['maxlength' => true]) ?> field($model, 'tanggal_lahir')->textInput(['maxlength' => true]) ?> field($model, 'alamat_rumah')->textInput(['maxlength' => true]) ?> field($model, 'foto')->textInput(['maxlength' => true]) ?>
'btn btn-success']) ?>

Сетела семуа берес ди ввод, кита биса менкоба унтук менджаланкан ди браузер деньган URL http://yii2campus.test/dosen/create , мы можем попробовать с вводом, который не соответствует проверке. поле формы станет красным, указывая на то, что проверка не удалась. если все пройдет успешно, в представлении отобразится уведомление модель готова сохранена .

Если мы изменим приведенный ниже код:

model siap disimpan !

С этим:

Id Dosen : id; ?>
Nama: nama; ?>
Tanggal Lahir: formatter->asDate($model->tanggal_lahir,'php:m/d/Y'); ?>
Alamat: alamat_rumah; ?>
Foto : foto; ?>

В результате будет отображена информация, которую мы ввели.

Вывод

В этой части мы изучали модель, хотя и не связывали модель с базой данных, но мы видели, что модель открыта только для хранения и извлечения данных. Здесь представлена модель, которую мы используем для проверки ввода в форме. Мы также создали контроллер, который регулирует поток между моделью и представлением.

в следующей части мы обсудим gii, волшебные функции, предоставляемые Yii.

Юк Беладжар Yii2 (Серия из 6 Частей)

Оригинал: “https://dev.to/farid_aditya/yuk-belajar-yii-part-4-19f1”