2015-09-20 5 views
-2
структура

Моя папка выглядит следующим образомCodeigniter: страница создания индекса

admin 
__master 
_______address_book 
_______Users 
_______Product 
_______etc 
__operations 
_______register_orders 
_______payments 
_______etc 

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

Теперь, как обрабатывать запрос индексной страницы для www.abc.com/admin? Я создал администратор контроллера в каталоге/контроллеров, тогда другие ссылки, такие как www.abc.com/admin/master/address_book не работают.

Как обрабатывать оба запроса? я также хотел бы знать, есть ли способ обработки каждой индексной страницы запросов например:

www.abc.com/admin/ 
www.abc.com/admin/master/ 
www.abc.com/admin/operations/ 
+0

По-видимому, вы пренебрегли читать и следовать за очень кратким [документации онлайн CodeIgniter] (HTTP: // www.codeigniter.com/docs). – Sparky

ответ

1

Чтобы получить доступ к каждому запросу с URL как-

www.abc.com/admin/ 
www.abc.com/admin/master/ 
www.abc.com/admin/operations/ 

вы должны использовать codeigniter's маршрутизации. А для маршрутизации есть файл config под папкой aplication/config с именем routes.php. Добавьте все ваши маршруты в этот файл. Предположим, вы хотите получить доступ к этому url-

www.abc.com/admin/operations/ 

, то вы должны создать новый маршрут для этого в route file, как-

$route['admin/operations'] = 'admin/operations'; 

где в $route индекса массива вы должны упомянуть, что будет url и значение против этого индекса, вы должны указать контроллера, а также вы можете указать имя контроллера function, которое будет вызываться (для функции index нет необходимости упоминать).

+0

спасибо khairul islam, я тоже попробовал этот. Я создал временную публичную функцию в контроллере входа в систему с функцией public admin(), а в маршрутизаторе я создал новую запись «$ route ['login/admin'] = 'admin';" все еще его не работает :( –

+0

oh..it должно быть отменено. спасибо Khairul islam, его работа сейчас.не могли бы вы рассказать, предлагая мне наилучшую практику для обработки таких запросов на индексную страницу –

+0

, потому что контроллеры нескольких уровней не работают над CodeIgniter! – 0x13a

-1

По умолчанию Codeigniter не поддерживает контроллеры мульти папки уровня в каталоге контроллера, вы можете попробовать расширяет базовый режим добавления этой функциональности https://github.com/ollierattue/codeigniter-multi-level-controller-extension/blob/master/core/MY_Router.php

Или в альтернативном пути, вы можете поместить все ваши классы в базе application/controller и использовать систему маршрутизации Codeigniter

К Codeigniter v3.0 была усовершенствованная система маршрутизации, вам больше не нужно полагаться на классическую систему маршрутизации/методов.

Вы можете указать маршрутную URI - метод непосредственно

$route['admin'] = 'admin/index' 
$route['admin/master'] = 'master/index' 
$route['admin/operations'] = 'operations/index' 

Смотреть больше на CodeIgniter 3.0 Docs - URI Routing

Смежные вопросы