CakePHP Router :: parseExtensions ('ics') не работает должным образом - PullRequest
0 голосов
/ 27 марта 2011

Я пытаюсь создать ical-файл.

Итак, я установил Router::parseExtensions('ics') в router.php.
Я создал папку ics в app/views/layouts и default.ctp с этим содержимым

<?php 
    header('Content-Type: text/calendar');
    echo $content_for_layout;
?>

В моем контроллере бронирования я создал действие ical() и создал ical.ctp в /app/views/reservations/ics/.

Итак, если я пытаюсь получить доступ к http://localhost/reservations/ical/1.ics, я получаю сообщение об ошибке:

Error: The view for ReservationsController::ical() was not found.

Error: Confirm you have created the file: C:\xampp\htdocs\ers\app\views\reservations\ical.ctp

Так что я немного озадачен сообщением об ошибке. Почему он ищет ical.ctp в app\views\reservations\, а не в app\views\reservations\ics\?

Когда я использую другое расширение, например .xml, сообщение об ошибке выглядит так:

Error: Confirm you have created the file: C:\xampp\htdocs\ers\app\views\reservations\xml\ical.ctp

Почему xml работает, а ics - нет? Что пошло не так?

Ответы [ 2 ]

5 голосов
/ 14 сентября 2011

Я только что закончил разбираться с этой ситуацией сам.Я пытался получить расширение csv для отображения, и я также получал ошибку «пропущенного просмотра».

Все было на месте;У меня были настроены /app/views/layouts/csv/default.ctp и /app/views/users/csv/export.ctp файлы просмотра.У меня был Router::parseExtensions('csv'); вверху моего /app/config/routes.php файла.

Оказалось, что я забыл добавить компонент RequestHandler в массив компонентов моего контроллера: var $components = array('RequestHandler');.

Как только я это сделал, все заработало отлично.

Так что, если вы наткнулись на этот вопрос, потому что у вас возникла та же проблема, убедитесь, что вы загружаете компонент RequestHandler, что исправит все за вас ...

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

У меня просто была такая же проблема при создании примера ics @ http://www.dereuromark.de/2011/11/21/serving-views-as-files-in-cake2

Потребовалось некоторое время, чтобы выяснить, что это похоже на ошибку с тортом, и открыть билет на нее :) http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/2565-cakeresponse-is-missing-icalendar-and-not-responding-as-documented Надеюсь, это скоро будет решено.

PS: я также опубликовал обходной путь / быстрое исправление для этого, пока оно не будет исправлено в ядре.

...