0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Модель - это воплощение понятия предметной области в коде приложения. В Eloquent каждая модель представлена классом в коде и таблицей в базе данных:</p>
1
<p>Модель - это воплощение понятия предметной области в коде приложения. В Eloquent каждая модель представлена классом в коде и таблицей в базе данных:</p>
2
<ol><li><em>Модель = Класс только в классовых языках. Чисто технически она может быть чем угодно, это зависит от языка.</em></li>
2
<ol><li><em>Модель = Класс только в классовых языках. Чисто технически она может быть чем угодно, это зависит от языка.</em></li>
3
<li><em>Связь Модель-Таблица - это особенность паттерна Active Record. В другом подходе, называемом Data Mapper, всё может быть по-другому.</em></li>
3
<li><em>Связь Модель-Таблица - это особенность паттерна Active Record. В другом подходе, называемом Data Mapper, всё может быть по-другому.</em></li>
4
</ol><p>Единственное, что нужно для работы модели - создать таблицу в базе данных. В веб-фреймворках это делается через миграции, которые создаются автоматически при генерации модели из командной строки:</p>
4
</ol><p>Единственное, что нужно для работы модели - создать таблицу в базе данных. В веб-фреймворках это делается через миграции, которые создаются автоматически при генерации модели из командной строки:</p>
5
<p>В нашем же случае используется файл<em>src/schema.php</em>, в котором есть определение таблицы:</p>
5
<p>В нашем же случае используется файл<em>src/schema.php</em>, в котором есть определение таблицы:</p>
6
<p>Этого описания достаточно для начала работы. Теперь можно создавать сущности, сохранять их в базу и обновлять:</p>
6
<p>Этого описания достаточно для начала работы. Теперь можно создавать сущности, сохранять их в базу и обновлять:</p>
7
<p>Этот код работает благодаря подходу "соглашения вместо конфигурации" (Convention Over Configuration). Нам не пришлось явно указывать имя таблицы, с которой связана модель. Eloquent автоматически получила её имя, выполнив приведение имени класса к нижнему регистру и сделав его во множественном числе.</p>
7
<p>Этот код работает благодаря подходу "соглашения вместо конфигурации" (Convention Over Configuration). Нам не пришлось явно указывать имя таблицы, с которой связана модель. Eloquent автоматически получила её имя, выполнив приведение имени класса к нижнему регистру и сделав его во множественном числе.</p>
8
<p>Кроме того, Eloquent проанализировала структуру этой таблицы для определения первичного ключа, полей и их типов. Эта информация используется внутри модели для сохранения, обновления и загрузки данных в код. Из примера выше видно, что при создании или обновлении сущности, используется метод save(), а Eloquent сама распознает что сейчас происходит: создание или обновление.</p>
8
<p>Кроме того, Eloquent проанализировала структуру этой таблицы для определения первичного ключа, полей и их типов. Эта информация используется внутри модели для сохранения, обновления и загрузки данных в код. Из примера выше видно, что при создании или обновлении сущности, используется метод save(), а Eloquent сама распознает что сейчас происходит: создание или обновление.</p>
9
<p>После того как сущность сохранена в базу, её можно извлечь. Самый простой способ сделать это, воспользоваться статическим методом find($id). Он выполняет поиск по первичному ключу.</p>
9
<p>После того как сущность сохранена в базу, её можно извлечь. Самый простой способ сделать это, воспользоваться статическим методом find($id). Он выполняет поиск по первичному ключу.</p>
10
10