Юк Беладжар 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
= $form->field($model, 'id')->textInput() ?> = $form->field($model, 'nama')->textInput(['maxlength' => true]) ?> = $form->field($model, 'tanggal_lahir')->textInput(['maxlength' => true]) ?> = $form->field($model, 'alamat_rumah')->textInput(['maxlength' => true]) ?> = $form->field($model, 'foto')->textInput(['maxlength' => true]) ?>= Html::submitButton('Create' , ['class' => '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”