Задать вопрос
@PHPjedi

Как можно реализовать связку двух моделей?

public function showPost(Post $post) { return $post };


public function showPostWithContent(Post $post, Content $content) { return $content };


У каждого Post есть свой уникальный slug.
У контента также, есть свой slug, но не уникальный. Также есть post_id.

Метод showPost показывает пост, также список контентов.
Метод showPostWithContent возвращает как Post, так и Content "наследуемой" от этого Post (что пытаюсь реализовать).

1. Можно реализовать так, чтобы у Content был уникальный slug, что решает сразу поставленную задачу.
2. Можно написать Middleware, который будет искать контент в коллекции Post.
3. Второй метод, только внутри метода без Middleware.

Это то, что приходит в голову...

Как бы вы реализовали?
Как реализовать это грамотно?)

Спасибо!

Дополнение:

Relationships - реализованы. Все правильно, и работает!

Посты могут быть разные. Типы следующие - Article, Video, и тд тп.

Posts table: title, description, article_id (nullable), video_id (nullable), question_id(nullable).

Получается, что пост динамичный в плане контента.

Контенты тем временем плотно связаны с Post. Foreign, on delete cascade.

Но если мы подберем следующий роут... /posts/{post = slug}/{content = content_slug} мы по сути не проверяем, принадлежит ли данный контент текущему посту. Дырочка какая - если мы возьмём content slug из другого поста, который id = 2 (Post: id = 2), и напишем так /posts/{post: id = 1}/content_slug (наследующийся от post: id =1), мы его получим. Так не должно быть.
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@vism
Но если мы подберем следующий роут... /posts/{post = slug}/{content = content_slug} мы по сути не проверяем, принадлежит ли данный контент текущему посту. Дырочка какая - если мы возьмём content slug из другого поста, который id = 2 (Post: id = 2), и напишем так /posts/{post: id = 1}/content_slug (наследующийся от post: id =1), мы его получим. Так не должно быть.

вот тут и надо проверять, что всё хорошо и выдавать ответ (например 404 если юзер ввел не верный URL)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@jazzus
Уникальный слаг и думать над структурой бд и отношений
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы