0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>После того как список готов, можно переходить к просмотру каждого элемента. Как обычно начинаем с маршрутизации:</p>
1
<p>После того как список готов, можно переходить к просмотру каждого элемента. Как обычно начинаем с маршрутизации:</p>
2
<p>В этом месте у маршрута появляется динамическая часть, идентификатор статьи. Подобный маршрут обрабатывает все страницы, имеющие вид /articles/<идентификатор статьи>, примеры:</p>
2
<p>В этом месте у маршрута появляется динамическая часть, идентификатор статьи. Подобный маршрут обрабатывает все страницы, имеющие вид /articles/<идентификатор статьи>, примеры:</p>
3
<p>/articles/1 /articles/100 /articles/what-is-js</p>
3
<p>/articles/1 /articles/100 /articles/what-is-js</p>
4
<p>Этот идентификатор используется в обработчике, для выборки из базы нужной статьи.</p>
4
<p>Этот идентификатор используется в обработчике, для выборки из базы нужной статьи.</p>
5
<p>Параметр<em>id</em>, определенный в маршруте, приходит в обработчик в виде аргумента. Имя этого аргумента может быть любым, для Laravel имеет значение только порядок. Если параметров в маршруте больше одного, то они передадутся в обработчик в том же порядке, в котором они определены в маршруте:</p>
5
<p>Параметр<em>id</em>, определенный в маршруте, приходит в обработчик в виде аргумента. Имя этого аргумента может быть любым, для Laravel имеет значение только порядок. Если параметров в маршруте больше одного, то они передадутся в обработчик в том же порядке, в котором они определены в маршруте:</p>
6
<p>Затем происходит выборка статьи из базы данных. Для нее используется метод findOrFail, а не find. Почему? Дело в том, что в большинстве случаев просмотр конкретной сущности должен вернуть ошибку 404, если самой сущности не существует. Метод find никак не помогает обработать эту ситуацию, он возвращает null. Дальше программисту придется делать проверку на существование и самому формировать правильный HTTP-ответ. Но так как задача очень частая, то разработчики Laravel решили ее внутри фреймворка. С одной стороны они добавили метод findOrFail, который выбрасывает исключение в случае отсутствия записи. С другой, добавили специальную обработку данных исключений на уровне обработки запросов.</p>
6
<p>Затем происходит выборка статьи из базы данных. Для нее используется метод findOrFail, а не find. Почему? Дело в том, что в большинстве случаев просмотр конкретной сущности должен вернуть ошибку 404, если самой сущности не существует. Метод find никак не помогает обработать эту ситуацию, он возвращает null. Дальше программисту придется делать проверку на существование и самому формировать правильный HTTP-ответ. Но так как задача очень частая, то разработчики Laravel решили ее внутри фреймворка. С одной стороны они добавили метод findOrFail, который выбрасывает исключение в случае отсутствия записи. С другой, добавили специальную обработку данных исключений на уровне обработки запросов.</p>
7
<p>И последний шаг, передача статьи в шаблон. Здесь ничего нового.</p>
7
<p>И последний шаг, передача статьи в шаблон. Здесь ничего нового.</p>
8
<p>Шаблон:</p>
8
<p>Шаблон:</p>
9
9