Шаблон макета CakePHP переопределяет шаблон представления

Я установил CakePHP 3.8, и мой шаблон макета (/src/Template/Layout/default.ctp) полностью переопределяет представление моего контроллера (src/Template/Users/login.ctp).

У меня есть echo'd и die()'d в начале/конце обоих файлов, поэтому я знаю, что они вызываются/рендерятся, но как только default.ctp вызывается/рендерится, login.ctp исчезает.

Я думаю, что это проблема маршрутизации, но я не уверен. Я новичок в установке/настройке CakePHP. Любая помощь будет принята с благодарностью.


person jsf    schedule 15.07.2019    source источник


Ответы (1)


Добро пожаловать в StackOverflow. Я думаю, вы неправильно поняли функциональность шаблонов CakePHP.

Предполагается, что файлы макета переопределяют файл представления. В CakePHP, когда представление отображается первым, отображается макет, и в этом макете представление встраивается в то место, где вы используете $this->fetch('content');.

по этой причине весь динамический контент помещается в файл представления, а общий контент, такой как заголовок и все остальное, — в макет.

Надеюсь, вы поняли мою точку зрения.

Если у вас все еще есть какие-либо сомнения, не стесняйтесь спрашивать. Я буду рад помочь.

person Mohd Samgan Khan    schedule 15.07.2019
comment
Именно то, что мне было нужно. Такое простое заявление для такого большого дела. Мне нужно обновиться с гораздо более старой версии, которую я не устанавливал. Я удалил эту очень важную строку, так как получал ошибки. Большое спасибо. - person jsf; 15.07.2019