Code Igniter: проблема с навигацией и шаблонами на основе текущего контроллера / метода - PullRequest
1 голос
/ 06 мая 2011

Мои контроллеры и методы отображаются на разделы и страницы, поэтому я использую это для выделения текущих элементов навигации и отображения шаблонов страниц (через $ this-> router-> class ..).Но я столкнулся с некоторой проблемой: у меня есть следующая структура результатов теста доктора:

website.com/doctor/results/

Таким образом, у контроллера «доктор» есть метод «results», который загружает страницу с результатами.Все хорошо.

Но рядом с каждым результатом есть ссылка, то есть «просмотреть детали», чтобы показать подробности этого теста.Функционально, щелкнув по этой ссылке, вы перейдете к «тестовому» контроллеру с его собственным методом «view», чтобы показать страницу деталей для этого конкретного теста.Но, видимо, вы все равно должны быть в разделе «доктор», подраздел «результаты».

Я не уверен, как этого добиться?без переосмысления навигации в целом (что до сих пор казалось довольно хорошим).

Ответы [ 2 ]

0 голосов
/ 06 мая 2011

Обычный способ сделать это - использовать route :

В файле /application/config/routes.php добавить этот маршрут:

$route['doctor/test-results/(:any)'] = 'test/view/$1';

Где test-results - это то, что вы хотите, чтобы сегмент URL (страница, на которую вы ссылаетесь).

Это в основном говорит:

Любой URL, который является doctor/test-results/something, должен действительно загружаться test/view/something

Вы можете сделать немного с маршрутами. Подробнее о маршрутизации читайте в Руководстве пользователя

Если вы обнаружите, что $this->router->class/method не работает, попробуйте поэкспериментировать с некоторыми функциями из URI-класса

0 голосов
/ 06 мая 2011

Вы можете создать подкаталог в вашем каталоге контроллеров, который называется «doctor», а затем использовать «result» в качестве имени вашего контроллера.

Чтобы отобразить все ваши результаты, вы должны использовать основной «index ()»метод.После этого вы могли бы вызвать другой метод "test ()" для отображения ваших тестов.

Пример:

Структура каталогов:

application/controllers/doctor/results.php

Ваш файл results.php будеттогда будь так:

function index()
{
// all results here
}

function test()
{
// test result display here
}
...