Как мне избежать углубления в CodeIgniter на два уровня, прежде чем я смогу анализировать сегменты URL? - PullRequest
0 голосов
/ 23 июля 2010

Я разрабатываю игровой фан-сайт для изучения CodeIgniter, который включает в себя базу данных о персонажах. Я хочу использовать этот формат URL:

http://www.mydomain.com/characters/joe
http://www.mydomain.com/characters/sam

Итак, у меня есть контроллер, который называется персонажами. Если я понимаю документацию CI, я могу анализировать только «joe» и «sam» в URL, если я вызываю функцию. Например, скажем, я определяю функцию «detail» и передаю ей 1-й сегмент URL. Это будет выглядеть так:

http://www.mydomain.com/characters/detail/joe
http://www.mydomain.com/characters/detail/sam

Мне не нужна эта ненужная глубина в иерархии URL. Конечно, должен быть какой-то способ вызвать подробные страницы для «joe» и «sam» через функцию «detail» в контроллере «characters», не требуя, чтобы «detail» был в URL, или вообще пропустить функцию «detail» , Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 23 июля 2010

Вы можете иметь функцию, которая принимает 1 (или много аргументов). Они действуют как параметр запроса.

Так что в вашем случае detail будет функция, а sam | joe будет первым переданным аргументом. В вашем коде вы должны сделать следующее:

public function detail($player) {
   //some code here, don't foget to check for a valid and present $player
}
0 голосов
/ 23 июля 2010

Вы можете проверить 1. Помощник URL для uri_string(), который будет возвращать сегменты URI.

2. URI-маршрутизация написать дополнительный контроллер, например, Подробно, а затем в ваши маршруты.php добавить

$route['characters/detail'] = "detail";

Однако, если вы хотите автоматически показать символы / подробный вид, вы можете поместить все в Index () и передать переменные из контроллера в представление.

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