Доступ к действиям с префиксами в cakephp - PullRequest
0 голосов
/ 28 февраля 2012

Я все еще нуб с CakePHP.Я хочу получить доступ к действию с префиксом, но я перенаправлен на мой текущий вид.Как я могу это сделать?Пример:

У меня есть функция, как показано ниже:

function admin_getID () {некоторые коды здесь ...}

в моей ссылке.я получил к нему доступ с помощью этого html-помощника:

$ this-> Html-> url (массив ('action' => 'getID', 'admin' => true))

обратите внимание, чтов настоящее время у меня нет префикса, и я хочу получить доступ к действию с префиксом.

URL будет использоваться в URL-адресе jQuery.ajax, поэтому в jquery,

jQuery.ajax ({... url: "Html-> url (массив (" action "=>" getID "," admin "=> true))?>", ...});

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Поскольку в вашем файле core.php вы используете тот же префикс, например:

Configure::write('Routing.prefixes', array('admin'));

Вы должны использовать:

echo $this->Html->link('link', array('action' => 'getID', 'admin' => true));

Это будетсоздать ссылку /admin/{your_controller}/getID.

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

Если выне используя директиву Routing.prefixes, как я уже говорил выше, просто добавьте параметр admin_getID в значение действия.

0 голосов
/ 29 февраля 2012

Я думаю, вы говорите о маршрутизации. Например, если вы хотите определить действия для администратора, например:

admin_index
admin_edit
admin_view

и они доступны по

example.com/admin/index
example.com/admin/edit
example.com/admin/view

Это называется маршрутизацией в CakePHP. Вы можете увидеть, как это делается здесь:

http://book.cakephp.org/1.3/en/view/948/Defining-Routes

Обновление

Вы можете просто сделать это:

<?php echo $this->Html->link('link', array('controller' => '{CONTROLLER_NAME}', 'action' => 'getID', 'admin' => 'true')); ?>

ОБНОВЛЕНИЕ 2

Вы не повторяете свой URL. Вам нужно сделать это:

jQuery.ajax({ ... url:"<?php echo $this->Html->url(array("action"=>"getID", "admin"=>true)); ?>", ... });

Если вы не используете PHP для рендеринга вашего jQuery, вы не можете использовать торт для генерации вашего URL, вам придется сделать это вручную:

jQuery.ajax({ ... url:"/admin/CONTROLLER/getID", ... });
...