Я пытаюсь «укоротить» свои URL-адреса, например, из:
http://mydomain.com/controller/method/something-here
в
http://mydomain.com/something-here
добавив к routes.php
:
$route['(.*)'] = 'router/resolve/$1';
и создание класса Router
, метод resolve()
которого определяет, соответствует ли something-here
строке в одной из моих таблиц базы данных (сущностей). Если это так, я хочу загрузить запись, вызвав соответствующий метод controller::method.
Например, если something-here
является типом book
, я бы хотел, чтобы Router::resolve()
вызывал Book::view($id)
.
Однако я понимаю, что контроллер не может вызывать метод другого контроллера. (Это?)
Я также не могу использовать redirect("book/view/$id")
, потому что $route['(.*)']
вызовет Router::resolve()
на book
(первый сегмент).
Любые предложения о том, как достичь моей цели?
text/
передsomething-here
. Я бы хотел, чтобы URL-адрес былsomething-here
сразу после домена. - person Obay   schedule 30.04.2014