Привязка модели маршрута, поставщик, промежуточное программное обеспечение, конструктор или функция - PullRequest
1 голос
/ 04 июля 2019

В большинстве проектов у вас часто есть маршрут, где у вас есть несколько параметров

/posts/1/comments/1

И вы хотите убедиться, что комментарий 1 является частью сообщений 1 Вы можете сделать это несколькими способами.

Abort_if () или Abort_unless ()

Как это

abort_if($post->id != $comment->post_id, 403);

или

abort_unless($post->id == $comment->post_id, 403);

Дело в том, что это должно быть в каждой функции контроллера, которая взаимодействует как с комментарием, так и с публикацией. Много повторяющегося кода. Не совсем то, что DRY

Middleware

Вы можете создать промежуточное программное обеспечение, которое выполняет эту проверку, и разместить его на нужном маршруте.

Против этого, вам нужно будет разместить его на каждом нужном вам маршруте, то же самое, что и опция отмены.

Привязка модели маршрута

Это выглядит как лучший вариант, глобальный способ запроса от модели сообщений.

$posts->comments()->where($comment->id);

Здесь, если вы связываете «комментарий» для постоянного поиска в отношении постов, вы никогда не сможете сделать

/comments/1

Что ты думаешь? Кажется, не могу найти ни лучшую практику, ни однозначный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...