2012-04-16 2 views
1

Я разрабатываю простую CMS в CakePHP, прямо сейчас у нее есть 4 контроллера (меню, сайт, роли, пользователи), я хочу переписать один контроллер, но я есть проблема.Url Переписывание контроллера - торт 2.0

Я использую все действия только в качестве администраторов для администратора целей, как admin_view, admin_add ...... кроме SiteController (этот контроллер только для внешнего интерфейса цели)

мне нужна www.example.com/ сайт/view/something_here необходимо заменить на www.example.com/something_here - это будет отображаться в интерфейсе так.

Я добавил строку в моем файле маршрутов:

Router::connect('/*', array('controller' => 'site', 'action' => 'view')); 

Но после добавления этого я не мог в состоянии использовать другие контроллеры.

Я снова добавил еще несколько строк до предыдущей строки:

Router::connect('/admin/Menus/*', array('controller' => 'menus', 'prefix' => 'admin')); 

же для всех других контроллеров, но если я посылаю какое-либо действие или идентификатор в URL это не работает. like - http://www.exmple.com/admin/menus/[view/1] - одна внутренняя квадратная скобка не работает.

любые идеи по переписыванию этого?

ответ

1

Я только что ответил на аналогичный вопрос по телефону another thread.

Чтобы поставить маршруты контроллера администратора до «/ *» - маршрут был правильной идеей, но так, как вы это сделали, маршрутизатор не может назначить действие. Вы можете использовать следующую информацию для каждого контроллера:

Router::connect('/admin/Menus/:action/*', array('controller' => 'menus', 'prefix' => 'admin')); 

Или вы могли бы использовать default prefix-routing routes, так что вам не нужно добавлять маршрут для каждого нового контроллера.

// prefix routing default routes with admin prefix 
Router::connect("/admin/:controller", array('action' => 'index', 'prefix' => 'admin', 'admin' => true)); 
Router::connect("/admin/:controller/:action/*", array('prefix' => 'admin', 'admin' => true)); 
+0

Большое спасибо, это помогло, я исправил его. –

+0

принять ответ, если он решил вашу проблему. –

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