CakePHP 4: Как создавать и передавать данные в шаблон в CakePHP 4
Шаблон в CakePHP 4 - это .php файл, который определяет HTML макет страницы. Файлы шаблонов автоматически загружаются на страницу. Для этого необходимо создавать файлы по определенному шаблону.
Из контроллера вы можете передавать данные в файл шаблона.
В этом уроке я покажу, как можно создавать файлы шаблонов и передавать значения из контроллера в шаблон в проекте CakePHP 4.
1. Создайте контроллер
- Создайте файл HomeController.php в папке src/Controller/.
- Создайте класс HomeController, который расширяет AppController.
- В классе создайте 2 метода
index() - Присвоить строковое значение переменным $page и $content. Для передачи этого значения в шаблон используйте $this->set(). Оно принимает значение Array. Функция compact() преобразует переданные имена переменных в массив, в котором ключ совпадает с именем переменной.
aboutus() - Присвоить строковое значение переменной $page. Инициализируйте $data['page'] значением $page. Передайте $data в $this->set(). В файле шаблона чтение значения происходит так же, как и вышеописанным способом.
CakePHP автоматически преобразует имена методов как параметр запроса.
В результате будут созданы следующие запросы:
- index - http://localhost:8765/home или http://localhost:8765/home/index
- aboutus - http://localhost:8765/home/aboutus
Готовый код:
<?php
declare(strict_types=1);
namespace App\Controller;
class HomeController extends AppController
{
public function index(){
$page = "Homepage";
$content = "Welcome to MakeCodes";
// Передать значение в шаблон
$this->set(compact('page','content'));
}
public function aboutus(){
$page = "About US";
// Передать значение в шаблон
$data['page'] = $page;
$this->set($data);
}
}
2. Создайте шаблон
Создайте новую папку Home в папке templates/. Теперь в папке Home создайте файлы index.php и aboutus.php.
Здесь убедитесь, что имя папки совпадает с именем контроллера - Home, а имя файла совпадает с именами методов, созданных в контроллере - index() и aboutus().
templates/Home/index.php
В файле просто создайте теги <h1> и <p>. Вы можете прочитать значения, переданные из контроллера, используя <?php echo $page ?> или <?= $page ?>.
Готовый код
<h1><?= $page ?></h1>
<p><?= $content ?></p>
templates/Home/aboutus.php
В этом файле также создайте теги <h1> и <p>. Я отобразил статическое значение в теге <p> и отобразил переданное значение в теге <h1> - <?= $page ?>.
Готовый код
<h1><?= $page ?></h1>
<p>Содержание страницы "О нас"</p>
3. Результат
Главная страница (http://localhost:8765/home/index)
Страница "О нас" (http://localhost:8765/home/aboutus)
Вам не нужно явно вызывать файлы шаблона из контроллера. Поэтому именование файлов и папки важно при создании шаблона.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.