У меня есть этот код:
// controller
function contact($token) {
$this->layout = 'ajax';
}
// contact element
<some html, no php>
// contact view html + javascript
<script type=".....">
....
$.post(
$(this).attr("href"),
null,
function(data){
$(data).appendTo($(".contact_store_link").parent()).fadeIn();
}
);
</script>
<!-- the relevant html -->
<dd><a class="contact_store_link" href="/stores/contact">link title</a></dd>
Проблема в том, что независимо от директивы $this->layout = 'ajax';
возвращаемая компоновка является компоновкой по умолчанию, установленной в функции appController.beforeFilter()
.
Дело в том, что кроме макета остальная часть кода работает просто отлично. правильный контроллер + действие + переданные аргументы. элемент и представление также работают нормально, и возвращенные данные содержат обработанные данные, только в неправильной компоновке.
очистка папки tmp не помогла.
Я также проверил, что макет ajax такой, каким он должен быть (и работает в другом файле controller.action + view).