0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Для изменения структуры базы данных Eloquent использует специальный язык, который абстрагирует нас от специфики конкретной СУБД. Он позволяет создавать и менять таблицы, не опираясь на SQL синтаксис конкретной базы данных.</p>
1
<p>Для изменения структуры базы данных Eloquent использует специальный язык, который абстрагирует нас от специфики конкретной СУБД. Он позволяет создавать и менять таблицы, не опираясь на SQL синтаксис конкретной базы данных.</p>
2
<p>Для создания таблицы используется метод create($name, $fn), где первый параметр это имя таблицы, второй - функция, внутри которой определяется её структура.</p>
2
<p>Для создания таблицы используется метод create($name, $fn), где первый параметр это имя таблицы, второй - функция, внутри которой определяется её структура.</p>
3
<p>В Eloquent используется соглашение, что имя таблицы это имя сущности, записанное строчными буквами во множественном числе. Только в таком случае Eloquent сможет автоматически связать класс с таблицей. Вот некоторые примеры:</p>
3
<p>В Eloquent используется соглашение, что имя таблицы это имя сущности, записанное строчными буквами во множественном числе. Только в таком случае Eloquent сможет автоматически связать класс с таблицей. Вот некоторые примеры:</p>
4
<p>Из последнего примера видно, что имя класса состоящее из нескольких слов, меняет свой формат с<em>CamelCase</em>на<em>snake_case</em>.</p>
4
<p>Из последнего примера видно, что имя класса состоящее из нескольких слов, меняет свой формат с<em>CamelCase</em>на<em>snake_case</em>.</p>
5
<p>Структура таблицы описывается в анонимной функции, в которую передаётся объект $table. Этот объект содержит множество методов, каждый из которых его меняет. Затем, Eloquent использует этот объект для генерации правильного SQL-запроса.</p>
5
<p>Структура таблицы описывается в анонимной функции, в которую передаётся объект $table. Этот объект содержит множество методов, каждый из которых его меняет. Затем, Eloquent использует этот объект для генерации правильного SQL-запроса.</p>
6
<p>По умолчанию поля создаются как<em>not null</em>.</p>
6
<p>По умолчанию поля создаются как<em>not null</em>.</p>
7
<p>Здесь приведена лишь малая часть того, что умеет делать Eloquent. За описанием остальных методов, лучше обратиться к<a>официальной документации</a>.</p>
7
<p>Здесь приведена лишь малая часть того, что умеет делать Eloquent. За описанием остальных методов, лучше обратиться к<a>официальной документации</a>.</p>
8
<p>Отдельно стоит выделить метод $table->timestamps(), добавляющий в таблицу два поля:<em>updated_at</em>и<em>created_at</em>. ORM автоматически изменяет эти поля, записывая в них дату создания и обновления сущности. Это довольно удобное соглашение, которое принято во многих фреймворках на разных языках.</p>
8
<p>Отдельно стоит выделить метод $table->timestamps(), добавляющий в таблицу два поля:<em>updated_at</em>и<em>created_at</em>. ORM автоматически изменяет эти поля, записывая в них дату создания и обновления сущности. Это довольно удобное соглашение, которое принято во многих фреймворках на разных языках.</p>
9
<p>В дополнение к типам колонок перечисленным выше, Eloquent предоставляет методы-модификаторы, которые можно использовать во время создания таблиц. Например, модификатор nullable() убирает ограничение<em>not null</em>.</p>
9
<p>В дополнение к типам колонок перечисленным выше, Eloquent предоставляет методы-модификаторы, которые можно использовать во время создания таблиц. Например, модификатор nullable() убирает ограничение<em>not null</em>.</p>
10
<p>Ещё из полезного - это создание индексов. Самый распространённый случай - добавление уникального индекса на такие поля как email:</p>
10
<p>Ещё из полезного - это создание индексов. Самый распространённый случай - добавление уникального индекса на такие поля как email:</p>
11
<p>Кроме уникального индекса существует несколько других, которые нужны для поддержания целостности данных или для ускорения доступа. Подробнее о них в курсах по SQL.</p>
11
<p>Кроме уникального индекса существует несколько других, которые нужны для поддержания целостности данных или для ускорения доступа. Подробнее о них в курсах по SQL.</p>