Выбор, какой контроллер должен содержать действие - PullRequest
2 голосов
/ 30 марта 2011

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

В настоящее время я создаю веб-сайт аукциона, на котором пользователи публикуют материалы, а другие пользователи предлагают выиграть аукцион. Там есть целая панель, посвященная пользователю (учетная запись пользователя / профиль). На этой панели пользователь может просматривать / редактировать свою личную информацию, просматривать свои списки, свои ставки и состояние аукционов, в которых он участвует, просматривать / добавлять свой адрес (а) для целей доставки / доставки товара и свои личные сообщения. (почтовый ящик).

Итак, естественно, я бы подумал, что должны быть ItemController, UserController, BiddingController (не уверен), AddressController и MessageController и, возможно, некоторые другие контроллеры. Но как я могу решить, что мне действительно нужен контроллер, и как мне решить, к какому контроллеру относится определенный метод действия? В настоящее время у меня есть много вещей внутри UserController (потому что это ставки, элементы / списки, адреса, сообщения и т. Д. Пользователя), но я не совсем уверен в этом.

Как мне решить, какие контроллеры создавать и когда их создавать?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Лично я придерживаюсь RESTful соглашений . Поэтому, как только вы определили ресурсы, это легко.

1 голос
/ 31 марта 2011

Я пытаюсь организовать свои контроллеры по концепции.В принципе, я хочу, чтобы действие на контроллере было наиболее связано с ним.Например, я считаю, что просмотр ваших собственных списков в большей степени связан с поиском аукционов или просмотром одного аукциона, чем с редактированием вашего собственного профиля, потому что модель страницы будет подчеркивать аукционы, а не имя пользователя, репутацию и т. Д.

В вашем случае я бы, наверное, подумал что-то вроде этого:

AuctionController
    - Search
    - View
    - PlaceBid
    - Create
    - MyListings

ShippingController
    - Payment
    - Location
    - Confirm

AccountController
    - Profile
    - EditProfile
    - OrderStatus
    - Inbox

FeedbackController
    - View (for a specific user)
    - Leave (for giving feedback)

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