CakePHP выполняет файл .ctp дважды - PullRequest
0 голосов
/ 20 ноября 2011

Я использую CakePhp для создания приложения, которое взаимодействует с API-интерфейсом Linkedin. У меня есть простая страница, которая получает идентификатор члена linkedin в переменной GET и токен аутентификации приложения в переменной сеанса. Контроллер страницы должен выполнить вызов cURL к API и установить переменную $ connection, завершить код контроллера и отобразить * .CTP.

Однако, что происходит. Если контроллер выполняется один раз без проблем, то без проблем запускает файл * .CTP. Затем выполняет контроллер СНОВА на этот раз не успешно извлекая данные из API-интерфейса linkedin, а затем выполняет файл * .CTP СНОВА, создавая все виды сообщений об ошибках в журнале отладки. Странно то, что, хотя журнал отладки показывает, что CAKE не может установить переменную $ connection, данные, основанные на этой переменной, отображаются правильно при отображении страницы.

Я использовал флаг Debugger :: Log ('xxx'), чтобы указать, когда выполняются начало и конец контроллера и * .CTP. Вот журнал отладки для ОДНОГО обновления на странице

2011-11-20 04:16:23 Debug: "START controller function"
2011-11-20 04:16:24 Debug: "End controller function"
2011-11-20 04:16:24 Debug: "START the .ctp"
2011-11-20 04:16:24 Debug: "END the .ctp"
2011-11-20 04:16:25 Debug: "START controller function"
2011-11-20 04:16:26 Debug: Notice (8): Undefined variable: connection in [C:\wamp\www\ta\app\controllers\reviews_controller.php, line 100]
2011-11-20 04:16:26 Debug: "End controller function"
2011-11-20 04:16:26 Debug: "START the .ctp"
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 7]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 36]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 41]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 43]
2011-11-20 04:16:26 Debug: "END the .ctp"

Страница действительно отображается нормально. Я просто пытаюсь понять, почему CAKE запускает файл * .CTP дважды (он не имеет перенаправлений) и создает все уведомления об ошибках в файле отладки. Я думал, что Cake запускает функцию контроллера, и только если контроллер достигает конца, запустите файл * .CTP один раз? Кто-нибудь знает, что может происходить?

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

Проблема не была специфичной для торта. Это было вызвано ошибкой img src в * CTP-файле, из-за которой браузеры загружали страницу дважды. Смотрите обсуждение: страница загружается дважды в Google Chrome

0 голосов
/ 20 ноября 2011

Эта проблема может быть вызвана чем-то, что вызывает стандартную обработку ошибок в CakePHP, в этом случае он сначала вызывает вашу функцию, а затем отображает сообщение об ошибке.

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