В большинстве проектов у вас часто есть маршрут, где у вас есть несколько параметров
/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
Что ты думаешь? Кажется, не могу найти ни лучшую практику, ни однозначный ответ.