Eloquent ORM ==========
Система объектно-реляционного отображения (ORM) Eloquent — красивая и простая реализация шаблона ActiveRecord для работы с базами данных. Каждая таблица имеет соответствующий класс-модель, который используется для работы с этой таблицей.
Для начала создадим модель Eloquent. Модели располагаются в папке app\models
. Все модели Eloquent наследуют базовый класс eloquent
и инициализируют переменную $_table
с названием таблицы.
Пример создание модели: :
@CLASS
role
@BASE
eloquent
@auto[]
$_table[roles]
Когда модель определена, у вас всё готово для того, чтобы можно было выбирать и создавать записи.
@all[]
Получение всех записей модели. :
$roles[^role:all[]]
@find[string $id]
Получение записи по любому уникальному полю. :
$roles[^role:find[1]]
@new[]
Создание нового объекта модели. :
$roles[^role:new[]]
@empty[]
Содержит пустоту, обычно используется при обновлении/добавлении записи. :
$roles.name[^role:empty[]]
@sql[]
Выполнение произвольного sql запроса. %TABLE%
- название таблицы, %KEY%
- ключ таблицы. :
$roles[^role:sql[SELECT %KEY% FROM %TABLE% LIMIT 2]]
@save[]
Сохранение данных в БД (только динамический вызов). Работает только для одной записи. :: $roles[^role:find[admin]] $roles[^role.save[]]
@delete[]
Удаление данных из БД (только динамический вызов). Работает как для одной записи, так и для многих сразу. :: $roles[^role:all[]] $roles[^role.delete[]]
@get_table[]
Получение название таблицы. :
$name[^role:get_table[]]
@get_key[]
Получение название ключа таблицы. :
$key[^role:get_key[]]
@get_id[]
Получение id записи, работает если только одна запись в моделе. :: $roles[^role:find[admin]] $id[^role:get_id[]]
@get_unique_fields[]
Получение списка уникальных столбцов. :: $fields[^role:get_unique_fields[]]
Пример сохранения новой записи ~~~~~~~~~~~~~ :
$roles[^role:new[]]
$roles.name[Администратор]
$roles[^role.save[]]
Пример обновления записи ~~~~~~~~~~~~~ :
$roles[^role:find[1]]
$roles.name[Терминатор]
$roles[^role.save[]]
Класс Eloquent позволяет обращаться к любой таблице без создания дополнительных классов. :
^eloquent:connect[roles]
$roles[^eloquent:all[]]
^eloquent:close[]
Метод connect
устанавливает соединение с таблицей, с которой Eloquent должен работать. В конце необходимо вызвать метод clear
, для того чтобы удалить соединение с таблицей.