Escribo porque tengo un problemilla con las vistas y los datos que les paso a las vistas.
He generado una vista(general.php es el nombre de la vista) general que sera la estructura de la web y en la que quiero anidar otras vistas dependiendo de la sección de la web. He creado un controlador llamado PHP como controlador principal , su código es muy sencillo es tal que así:
Código:
Aquí anido una vista llamada 'enlaces' que esta en la carpeta principal dentro de vistas con la vista general. En este controlador no tengo ningún problema. El problema viene cuando en otro controlador no defino la variable cuerpo dentro del array datos. El código de este controlador es aún mas sencillo. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class PHP extends CI_Controller{ function index(){ $datos['titulo'] = "Proyecto Alpha"; $datos['cuerpo'] = $this->load->view('principal/enlaces','',TRUE); $this->load->view('general',$datos); } } ?>
Código:
En el no añado la variable $datos['cuerpo'].<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Usuario extends CI_Controller{ function index(){ $datos['titulo']="Usuarios"; $this->load->view('general',$datos); } } ?>
Bueno como quiero que mi vista general sea flexible, a que haya veces que los datos que se le pasan esten definidos o no he hecho esta vista.
Código:
En la que he compruebo si la variable $cuerpo esta definida. Y he aquí donde se me produce el error. Mas concretamente este:<!DOCTYPE HTML> <html> <head> <title><?php echo $titulo?></title> </head> <body> <div id="Cuerpo"> <header> <h1> <a href="index.php">Proyecto Alpha</a></h1> <p>Aplicacion casera</p> </header> <?php if($cuerpo){ echo $cuerpo; } ?> </div> <footer> Todos los derechos rerservados 2012</footer> </body>
He probado con isset y con !is_null , pero nada. ¿Qué esta ocurriendo?