У меня есть
users
id
username
companies
id
areas
id
area_company
id
area_id
company_id
area_company_user
id
area_company_id
user_id
company_user
id
company_id
user_id
area_user
id
area_id
user_id
куда
- один
user
имеет от 0 ко многимareas
И одинarea
может иметь от 0 ко многимusers
- один
area
может иметь от 0 до многихcompanies
И одинcompany
может иметь от 0 до многихareas
- один
company
может иметь от 0 до многихusers
И одинuser
может иметь от 0 до многихcompanies
- один
area_company
может иметь от 1 ко многимusers
И одинuser
может иметь от 0 ко многимarea_company
area_company_user
имеет атрибуты, характерные для этого видаuser
Кроме того, я структурирую маршруты следующим образом.
/users
- все существующие пользователи/areas
- все существующие области/companies
- все существующие компании/areas/{area}/companies
- все существующие компании в определенной области/users/{user}/companies
- все существующие компании от конкретного пользователя/companies/{company}/areas
- все существующие направления, в которых находится компания/areas/{area}/companies/{company}/users
- все существующие пользователи из компании, существующей в определенной области
Для 1., 2. и 3. Я создаю контроллеры, которые следуют следующему шаблону.
AreaController
с методами index(), создайте (), store(), show(), edit(), update() и destroy()
GET /areas, index() method,
GET /areas/create, create() method,
POST /areas, store() method,
GET /areas/{area}, show() method,
GET /areas/{area}/edit, edit() method,
PUT/PATCH /areas/{area}, update() method,
DELETE /areas/{area}, destroy() method.
Теперь из этого списка маршрутов в основном осталось два случая.
- Случай 1: 4., 5. и 6.
- Случай 2: 7.
Мой вопрос в том, должен ли я создавать новые контроллеры для каждого случая, так как я хотел бы выполнять различные действия в каждом из них? Если да, то это означает соответственно
- Случай 1:
AreaCompanyController
,UserCompanyController
иCompanyAreaController
- Случай 2:
AreaCompanyUserController
Примечание: это был полезный ответ, но он не совсем удовлетворил мою озабоченность.
AreaCompanyUserController
). Мне нравится, как он выглядит: он легко читается и понятен. Что касается упомянутого поиска, вы можете отделить SearchController, где вы можете использовать различные методы программно. - person Tpojka   schedule 08.01.2021