Codeigniter дополнительные сегменты URL - PullRequest
0 голосов
/ 13 июля 2011

Я делаю сайт для клиента и решил, что буду использовать воспламенитель кода.

Сайт, по сути, имеет два бэкэнда, один для дизайнеров, а другой для отдела продаж.Таким образом, после входа в систему пользователь будет перенаправлен на

  • mysite.com / sales /
  • mysite.com / design /

ПродажиНапример, команда может просматривать заказы, контейнеры, продукты, поэтому мне нужен контроллер для каждого из них.

  • mysite.com / sales / orders /

Необходимость продажчтобы иметь возможность просматривать, редактировать, удалять определенные заказы ...

  • mysite.com / sales / orders / vieworder / 235433

В основном моя проблема в том, что у меня нетдостаточно сегментов URL для игры.

Мои мысли о решении моей проблемы

  • удаление заказов, контейнеров, классов продуктов и использование ВСЕХ их методов в качестве методов продажкласс, хотя это означало бы большое количество методов и загрузку всех моделей, поэтому это казалось бессмысленным.

  • удаление классов продаж / дизайнера и контроль того, к чему каждый пользователь имеет доступна основе типа пользователя, сохраненного в данных сеанса.

  • способ иметь дополнительный сегмент URL?

Я ценю любой совет, я просто не хочу получать 3 недели в проект и понимаю, что я начал с самого начала неправильно!

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Использовать папки.

Если вы создадите подпапку в /application/ с именем sales, вы можете поместить туда разные контроллеры:

/application/
    /sales/
      orders.php /* Controller */
    /design/

Затем в orders.php вы добавитеваш метод vieworders($id) и т. д., и вы сможете получить к нему доступ с помощью domain.com/sales/orders/vieworders/id.

. Вы также можете создавать подпапки в /models/ и /views/ для упорядочивания ваших файлов.

Теперь контроль доступа - это нечто отдельное, и это зависит больше от используемой вами системы аутентификации.

0 голосов
/ 13 июля 2011

Похоже, вы должны взглянуть на класс маршрутизации. Возможно, это грязное решение, но перенаправление продаж / (: any) на что-то вроде sales_ $ 1 будет означать, что вы создадите контроллеры с такими именами, как sales_orders. То же самое для части дизайна.

(К вашему сведению: $routing['sales/(:any)'] = 'sales_$1'; должно сработать; см. Application / config / routing.php).

0 голосов
/ 13 июля 2011

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

Это был бы точный способ сделать это.

...