Использование вспомогательной проблемы $ javascript в CakePHP: «Неопределенная переменная: javascript» - PullRequest
0 голосов
/ 26 июля 2011

У меня проблема, когда я хочу использовать $javascript->link('prototype') в макете default.ctp. Возвращает:

неопределенная переменная: javascript [APP \ views \ layouts \ default.ctp, строка 6]

Я также добавил этот код в app_controller.php :

<?
    class AppController extends Controller {
        var $Helpers = array('Html','Javascript','Ajax','Form');
    }
?>

Файл prototype.js уже находится в папке webroot/js.

Где проблема?

Ответы [ 4 ]

1 голос
/ 22 сентября 2012

Вы просто открываете консоль ошибок браузера Firefox (сочетание клавиш ctrl + shift + j ).

  • Найдите ошибку и нажмите на нее.
  • После нажатия вы увидите часть головы.
  • Обратите внимание на местоположение файла JavaScript (* .js), который вы хотите найти (вы увидите, что это местоположение неверно).
  • Вырежьте файл JavaScript из webroot и вставьте его в указанное место головного блока.

Пример:
Это отобразится на консоли ошибок.Map_demo - мой проект, и вместо него будет отображаться имя вашего проекта:

<script type="text/javascript" src="/map_demo/js/test.js"></script>

  • Вырезать файл JavaScript из webroot
  • Сделать папку JavaScriptпапка приложения вашего проекта, /map_demo/js
  • Вставьте сюда test.js (ваш файл скрипта)

Теперь ваша функция JavaScript будет работать.

1 голос
/ 27 июля 2011

У меня была эта проблема много раз.Обычно это происходит из-за того, что код контроллера где-то перезаписывается, или из-за чего-то странного, происходящего с автоматическим материалом Cake.Если вы удалите все свои помощники и затем добавите их один за другим, это, вероятно, сработает в конечном итоге.

Еще один совершенно правильный способ создания ссылок JavaScript - использование следующего, который не обращается к переменной $ javascript:

echo $html->script(array('prototype'));
1 голос
/ 26 июля 2011

Должно быть $helpers вместо $Helpers.

0 голосов
/ 01 сентября 2011

На всякий случай, если кто-то еще сталкивался с этой ошибкой / проблемой: это также происходило со мной, пока я не закомментировал строку $session->flash(); в моем default макете.Понимая, что ошибка была вызвана флеш-сообщениями, я вернулся к контроллеру и заметил, что использую отдельные макеты для флеш-сообщений (например, «message_alert»), и что эти макеты на самом деле не существуют в папке просмотра!*

Помните, что подобные ошибки могут означать, что файл еще не определен.Желаем удачи.

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