0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Создание сущности включает в себя два действия: отображение формы и обработка данных формы. За каждое из этих действий отвечает собственный маршрут. Вот несколько примеров:</p>
1
<p>Создание сущности включает в себя два действия: отображение формы и обработка данных формы. За каждое из этих действий отвечает собственный маршрут. Вот несколько примеров:</p>
2
<p><strong>Пользователь</strong></p>
2
<p><strong>Пользователь</strong></p>
3
<ul><li>GET /users/new</li>
3
<ul><li>GET /users/new</li>
4
<li>POST /users</li>
4
<li>POST /users</li>
5
</ul><p><strong>Курс</strong></p>
5
</ul><p><strong>Курс</strong></p>
6
<ul><li>GET /courses/new</li>
6
<ul><li>GET /courses/new</li>
7
<li>POST /courses</li>
7
<li>POST /courses</li>
8
</ul><p><strong>Сотрудник компании (пример вложенного маршрута)</strong></p>
8
</ul><p><strong>Сотрудник компании (пример вложенного маршрута)</strong></p>
9
<ul><li>GET /companies/3/users/new</li>
9
<ul><li>GET /companies/3/users/new</li>
10
<li>POST /companies/3/users</li>
10
<li>POST /companies/3/users</li>
11
</ul><h3>Отображение формы</h3>
11
</ul><h3>Отображение формы</h3>
12
<p><strong>Обработчик</strong></p>
12
<p><strong>Обработчик</strong></p>
13
<p><strong>Шаблон</strong></p>
13
<p><strong>Шаблон</strong></p>
14
<p>Содержимое обработчика зависит от того, какой используется инструментарий. В местах, где есть билдеры форм, в этом обработчике создается форма как некоторый объект и отправляется в шаблон.</p>
14
<p>Содержимое обработчика зависит от того, какой используется инструментарий. В местах, где есть билдеры форм, в этом обработчике создается форма как некоторый объект и отправляется в шаблон.</p>
15
<p>Билдер берет на себя большое количество задач: обрабатывает вывод ошибок, занимается валидацией и подготовкой данных. Некоторые билдеры знают про ту сущность, с которой они работают. Поэтому могут строить формы в полностью автоматическом режиме.</p>
15
<p>Билдер берет на себя большое количество задач: обрабатывает вывод ошибок, занимается валидацией и подготовкой данных. Некоторые билдеры знают про ту сущность, с которой они работают. Поэтому могут строить формы в полностью автоматическом режиме.</p>
16
<p>В нашем примере такого нет, поэтому все действия делаются руками. Кроме данных в шаблон передается массив errors. Это нужно, потому что форма используется обоими обработчиками: одним - только для отображения новой формы, другим - для отображения формы в случае наличия ошибок.</p>
16
<p>В нашем примере такого нет, поэтому все действия делаются руками. Кроме данных в шаблон передается массив errors. Это нужно, потому что форма используется обоими обработчиками: одним - только для отображения новой формы, другим - для отображения формы в случае наличия ошибок.</p>
17
<h2>Обработка данных формы</h2>
17
<h2>Обработка данных формы</h2>
18
<p>Своего шаблона у таких обработчиков нет. Если данные оказались не валидны, то этот обработчик рисует форму обработчика new и отправляет ее вместе с кодом ответа 422 (Unprocessable Entity). Если данные корректны, то выполняется основная логика обработчика - происходит сохранение школы в базу данных $repo->save($schoolData). Затем редирект на список школ с оповещением через флеш об успешном добавлении.</p>
18
<p>Своего шаблона у таких обработчиков нет. Если данные оказались не валидны, то этот обработчик рисует форму обработчика new и отправляет ее вместе с кодом ответа 422 (Unprocessable Entity). Если данные корректны, то выполняется основная логика обработчика - происходит сохранение школы в базу данных $repo->save($schoolData). Затем редирект на список школ с оповещением через флеш об успешном добавлении.</p>