CakePHP: Пользовательская функция в начальной загрузке, которая использует $ ajax-> link, не работает - PullRequest
0 голосов
/ 23 марта 2010

Здравствуйте, у меня есть два вопроса:

(1) Лучше ли создавать глобальные пользовательские функции в файле начальной загрузки? Есть ли лучшее место для их хранения?

(2) Я не могу использовать следующую строку кода в моей пользовательской функции, расположенной в моем файле bootstrap.php:

    $url = $ajax->link ( 'Delete', array ('controller' => 'events', 'action' => 'delete', 22 ), array ('update' => 'event' ), 'Do you want to delete this event?' );
    echo $url;

Я получаю следующую ошибку:

Notice (8): Undefined variable: ajax [APP\config\bootstrap.php, line 271]

Code

}

function testAjax () {

            $url = $ajax->link ( 'Delete', array ('controller' => 'events', 'action' => 'delete', 22 ), array ('update' => 'event' ), 'Do you want to delete this event?' );

testAjax - APP\config\bootstrap.php, line 271
include - APP\views\event\queue.ctp, line 19
View::_render() - CORE\cake\libs\view\view.php, line 649
View::render() - CORE\cake\libs\view\view.php, line 372
Controller::render() - CORE\cake\libs\controller\controller.php, line 766
Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 211
Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 181
[main] - APP\webroot\index.php, line 91

Однако это работает так, как задумано, если я размещу тот же код в моем представлении:

<a onclick=" event.returnValue = false; return false;" id="link1656170149" href="/shout/events/delete/22">Delete</a>

Пожалуйста, помогите :)

Заранее спасибо !!

Ответы [ 2 ]

1 голос
/ 23 марта 2010
  1. Это зависит: если это полная универсальная функция, к которой можно получить доступ из любого места в вашем приложении, тогда да. В противном случае я бы поместил его в родительский класс, откуда вы хотите его использовать (app_model, app_controller)
  2. $ajax - вспомогательный класс, к которому нельзя получить доступ из вашего файла начальной загрузки. Вам нужно будет включить помощника в загрузчик, и именно здесь нет смысла помещать функцию туда
0 голосов
/ 23 марта 2010

Не делайте это в начальной загрузке - для этого нет подходящего места.

Если вы хотите, чтобы этот URL был на каждой странице - поместите его в свой макет (http://book.cakephp.org/view/96/Layouts)

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