Codeigniter маршрутизации с косыми чертами - PullRequest
1 голос
/ 04 апреля 2011

Правила маршрутизации Codeigniter, кажется, ничего не получают после косой черты - это поведение по умолчанию - как я могу предотвратить это?

Пример:

В маршрутах .php:

$route['blog/read-post/(.+)'] = 'blog/lookup_blog_alias/$1';

В контроллере:

function lookup_blog_alias($str){
print $str;
}

Если я введу URL, например:

http://localhost/blog/read-post/a-b-c/12

Я получаю часть «a-b-c» только тогда, когда мне хочется «a-b-c / 12».

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 04 апреля 2011

Нет, по умолчанию ваше требование будет работать, только если вы измените URL-адрес маршрута и метод контроллера на что-то вроде этого: -

$route['blog/read-post/(.+)/(.+)'] = 'blog/lookup_blog_alias/$1/$2';

// Controller Method
function lookup_blog_alias($str1, $str2){
  print $str1.'/'.$str2;
}

Вы должны следовать основам CodeIgniter Руководство пользователя , где говорится, что для CI принято обозначать предел строки символом "/" (прямая косая черта).Это просто означает, что между двумя косыми чертами в общей MVC Framework могут / могут учитываться следующие вещи: -

  • Имя модуля
  • Контроллер(Класс) Имя
  • Имя метода контроллера
  • (1-й) Индекс строки запроса
  • (1-й) Значение строки запроса
  • (2-й) Индекс строки запроса
  • (2-е) значение строки запроса
  • ... (пара индекс / значение строки запроса)

Однако на странице "routes.php" CodeIgniter,логика может быть изменена в силу HTAccess.Тем не менее, вышеприведенная концепция стоит прямо, и поэтому будет разумно следовать обычной архитектуре MVC.

Надеюсь, это поможет.

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