CakePHP - Просмотр элементов

Некоторые части веб-страниц повторяются на нескольких веб-страницах, но в разных местах. CakePHP может помочь нам повторно использовать эти повторяющиеся части. Эти многоразовые детали называютсяElements - help box, extra menu, и т. д. Элемент в основном mini-view. Мы также можем передавать переменные в элементах.

Cake\View\View::element(string $elementPath, array $data, array $options =[]

У вышеуказанной функции есть три аргумента:

  • Первый аргумент - это имя файла шаблона в /src/Template/element/ папка.

  • Второй аргумент - это массив данных, которые будут доступны для визуализированного представления.

  • Третий аргумент - для массива опций. например, кеш.

Из трех аргументов первый является обязательным, а остальные - необязательными.

пример

Создайте файл элемента в src/Template/element каталог называется helloworld.php. Скопируйте следующий код в этот файл.

SRC / Шаблон / элемент / helloworld.php

<p>Hello World</p>

Создать папку Elems в src/Template и в этом каталоге создайте Viewфайл с именем index.php. Скопируйте следующий код в этот файл.

SRC / Шаблон / Elems / index.php

Element Example: <?php echo $this->element('helloworld'); ?>

Внесите изменения в config/routes.php файл, как показано в следующей программе.

конфигурация / routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   $builder->connect('/element-example',['controller'=>'Elems','action'=>'index']);
   $builder->fallbacks();
});

Создать ElemsController.php файл в src/Controller/ElemsController.php. Скопируйте следующий код в файл контроллера.

SRC / Контроллер / ElemsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   class ElemsController extends AppController{
      public function index(){
      }
   }
?>

Выполните приведенный выше пример, посетив следующий URL-адрес http: // localhost / cakephp4 / element-example.

Вывод

После выполнения вышеуказанный URL-адрес даст вам следующий результат.