В моем приложении у меня есть таблица категорий и несколько таблиц, включая службы и статьи, которые необходимо классифицировать. Для удобства я хочу использовать полиморфную модель для этих данных.Использование прозрачных полиморфных отношений для категоризации данных в Laravel
Категория создана для использования службами или статьями. Например, если таблица была определена как таблица служб, она не будет отображаться как возможная категория для добавления статей в.
Это также относится к листингу. У меня будет меню для статей и меню для служб, и в каждом из них будут перечислены только категории товаров или услуг, независимо от того, являются ли они пустыми или содержат ли они их соответствующие типы.
Категория обслуживания, например, может использоваться для многих служб. Аналогично, служба может иметь множество категорий, но только категории услуг.
Как представляется, моей базы данных, возможно, недостаточно. Я не использовал сводную таблицу, но когда я пытался ее использовать, она не позволяла мне выбирать только категории статей или категории услуг; на самом деле, он не может отличаться между этими двумя.
В принципе, мне нужно, чтобы быть в состоянии:
- Получить список всех категорий используемых по услугам (возможно
where('categorizable_type', 'App\Service')
?) - Получить список всех категорий используемых в статьях (возможно
where('categorizable_type', 'App\Article')
?) - Получить список всех товаров/услуг в категории
- Получите список всех категорий ories используется артикль/услуги
В этой идеальной ситуации, я могу легко добавить новые (или существующие) статьи/услуги категорий тоже:
$category = App\Category::find(1);
$article = new App\Article();
$article->title = 'This is an article title.';
$category->articles()->save($article);
И я могу легко добавить новый (или существующий) категория для статей/услуг:
$article = App\Article::find(1);
$category = new App\Category();
$category->title = 'This is a category title.';
$article->categories()->save($category);
Что "не работает"? Вы получаете сообщение об ошибке?Вы получаете один набор данных, но ожидаете другого? Сообщите нам, чего вы ожидаете, что получаете и какие ошибки. – patricus
@patricus Я отредактировал свое сообщение, но прямо сейчас не так много ошибок, как отсутствие интерфейсов, необходимых для правильного выбора данных. Я не уверен, как это реализовать, но я уверен, что концепция является подходящим способом управления этими данными в Eloquent. – Forest
Я обновил это снова, в надежде сделать его более разумным. Общий вопрос касается концепции и техники, поэтому трудно объяснить ошибки. – Forest