HTML Diff
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-&gt;save($schoolData). Затем редирект на список школ с оповещением через флеш об успешном добавлении.</p>
18 <p>Своего шаблона у таких обработчиков нет. Если данные оказались не валидны, то этот обработчик рисует форму обработчика new и отправляет ее вместе с кодом ответа 422 (Unprocessable Entity). Если данные корректны, то выполняется основная логика обработчика - происходит сохранение школы в базу данных $repo-&gt;save($schoolData). Затем редирект на список школ с оповещением через флеш об успешном добавлении.</p>