Определенные части веб-страниц повторяются на нескольких веб-страницах, но в разных местах. CakePHP может помочь нам повторно использовать эти повторяющиеся части. Эти многократно используемые части называются Элементами — окно справки, дополнительное меню и т. Д. Элемент — это, в основном, мини-вид . Мы также можем передавать переменные в элементах.
Cake\View\View::element(string $elementPath, array $data, array $options =[])
Есть три аргумента для вышеуказанной функции —
-
Первый аргумент — это имя файла шаблона в папке / src / Template / Element / .
-
Второй аргумент — это массив данных, которые должны быть доступны для визуализированного представления.
-
Третий аргумент — для массива опций. например, кеш.
Первый аргумент — это имя файла шаблона в папке / src / Template / Element / .
Второй аргумент — это массив данных, которые должны быть доступны для визуализированного представления.
Третий аргумент — для массива опций. например, кеш.
Из трех аргументов первый является обязательным, а остальные необязательными.
пример
Создайте файл элемента в каталоге src / Template / Element с именем helloworld.ctp . Скопируйте следующий код в этот файл.
ЦСИ / Шаблон / Элемент / helloworld.ctp
<p>Hello World</p>
Создайте папку Elems в src / Template и в этом каталоге создайте файл View с именем index.ctp . Скопируйте следующий код в этот файл.
SRC / Template / Elems / index.ctp
Element Example: <?php echo $this→element('helloworld'); ?>
Внесите изменения в файл config / rout.php, как показано в следующей программе.
конфиг / routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/elementexample',['controller'=>'Elems','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
Создайте файл ElemsController.php в src / Controller / ElemsController.php . Скопируйте следующий код в файл контроллера.
SRC / Controller / ElemsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; class ElemsController extends AppController{ public function index(){ } } ?>
Выполните приведенный выше пример, посетив следующий URL.
HTTP: // локальный: 85 / CakePHP / элемент-пример
Выход
После выполнения приведенный выше URL даст вам следующий вывод.