Skip to content

Latest commit

 

History

History
143 lines (86 loc) · 4.11 KB

eloquent.rst

File metadata and controls

143 lines (86 loc) · 4.11 KB

Eloquent ORM ==========

Система объектно-реляционного отображения (ORM) Eloquent — красивая и простая реализация шаблона ActiveRecord для работы с базами данных. Каждая таблица имеет соответствующий класс-модель, который используется для работы с этой таблицей.

Основы использования

Для начала создадим модель Eloquent. Модели располагаются в папке app\models. Все модели Eloquent наследуют базовый класс eloquent и инициализируют переменную $_table с названием таблицы.

Пример создание модели: :

@CLASS
role

@BASE
eloquent

@auto[]
$_table[roles]

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

Методы Eloquent

@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, для того чтобы удалить соединение с таблицей.