CakePHP - Ver elementos
Ciertas partes de las páginas web se repiten en varias páginas web, pero en diferentes ubicaciones. CakePHP puede ayudarnos a reutilizar estas partes repetidas. Estas piezas reutilizables se denominanElements - help box, extra menu, etc. Un elemento es básicamente un mini-view. También podemos pasar variables en elementos.
Cake\View\View::element(string $elementPath, array $data, array $options =[]
Hay tres argumentos para la función anterior de la siguiente manera:
El primer argumento es el nombre del archivo de plantilla en el /src/Template/element/ carpeta.
El segundo argumento es la matriz de datos que estarán disponibles para la vista renderizada.
El tercer argumento es para el conjunto de opciones. por ejemplo, caché.
De los 3 argumentos, el primero es obligatorio, mientras que el resto son opcionales.
Ejemplo
Cree un archivo de elemento en src/Template/element directorio llamado helloworld.php. Copie el siguiente código en ese archivo.
src / Plantilla / elemento / helloworld.php
<p>Hello World</p>
Crea una carpeta Elems a src/Template y debajo de ese directorio crea un Viewarchivo llamado index.php. Copie el siguiente código en ese archivo.
src / Template / Elems / index.php
Element Example: <?php echo $this->element('helloworld'); ?>
Realizar cambios en el config/routes.php archivo como se muestra en el siguiente programa.
config / route.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();
});
Crear un ElemsController.php archivar en src/Controller/ElemsController.php. Copie el siguiente código en el archivo del controlador.
src / Controller / ElemsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class ElemsController extends AppController{
public function index(){
}
}
?>
Ejecute el ejemplo anterior visitando la siguiente URL http: // localhost / cakephp4 / element-example
Salida
Tras la ejecución, la URL anterior le dará el siguiente resultado.