Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

cakePHP Notice (8): Undefined variable

Estas en el tema de cakePHP Notice (8): Undefined variable en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, Bueno resulta que me dio por aprender cakePHP y estoy siguiendo un tutorial de una versión anterior. pero voy realizando los cambios ...
  #1 (permalink)  
Antiguo 25/04/2012, 08:24
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 12 años, 5 meses
Puntos: 28
cakePHP Notice (8): Undefined variable

Hola a todos,
Bueno resulta que me dio por aprender cakePHP y estoy siguiendo un tutorial de una versión anterior. pero voy realizando los cambios para que funccione...
pero me he quedado estancado.
no se como quitar este error Notice (8): Undefined variable:
he buscado en la red y no he encontrado nada.
Espero que podais ayudarme.
Estoy usando la versión 2.1.1

TareasControler.php
Código PHP:
<?php
class TareasController extends AppController {
var 
$name 'Tareas';
var 
$helpers = array('Html''Form');
function 
index() {
$this->set('tareas'$this->Tarea->find('all'));
}

function 
edit($id null) {
if (!
$id) {
$this->Session->setFlash('Tarea Inválida');
$this->redirect(array('action'=>'index'), nulltrue);
}
if (empty(
$this->data)) {
    
$this->data $this->Tarea->find(array('id' => $id));
} else {
if (
$this->Tarea->save($this->data)) {
$this->Session->setFlash('La Tarea ha sido salvada');
$this->redirect(array('action'=>'index'), nulltrue);
} else {
$this->Session->setFlash('La Tarea no ha podido ser salvada.
inténtalo de nuevo.'
);
}
}
}



function 
add() {
if (!empty(
$this->data)) {
$this->Tarea->create();
if (
$this->Tarea->save($this->data)) {
$this->Session->setFlash('La Tarea ha sido salvada');
$this->redirect(array('action'=>'index'), nulltrue);
} else {
$this->Session->setFlash('Tarea no salvada. Prueba de nuevo.');
}
}

}
}
?>
Views:
add:

Código PHP:
<?php echo $form->create('Tarea');?>
<fieldset>
<legend>Añadir Nueva Tarea</legend>
<?php
echo $form->input('titulo');
echo 
$form->input('hecha');
?>
</fieldset>
<?php echo $form->end('Añadir Tarea');?>
<?php 
echo $this->Html->link('Listar todas las Tareas', array('action'=>'index')); ?>
edit:
Código PHP:
<?php echo $form->create('Tarea');?>
<fieldset>
<legend>Edita Tarea</legend>
<?php
echo $form->hidden('id');
echo 
$form->input('titulo');
echo 
$form->input('hecha');
?>
</fieldset>
<?php echo $form->end('Salvar');?>
<?php 
echo $this->Html->link('Listar Todas las Tareas', array('action'=>'
index'
)); ?><br />
<?php echo $this->Html->link('Agregar Tarea', array('action'=>'add')); ?>
ADD me saca este error :
Notice (8): Undefined variable: form [APP\View\tareas\add.ctp, line 1]

y Edit me saca el mensaje de cakePHP;
Tarea Inválida

También les dejo el index por si le hace falta.

INDEX EN VIEWS:
Código PHP:
<h2>Tareas</h2>
<?php if(empty($tareas)): ?>
No hay tareas en esta lista
<?php else: ?>
<table>
<tr>
<th>Título</th>
<th>Estatus</th>
<th>Creado</th>
<th>Modificado</th>
<th>Acciones</th>
</tr>
<?php foreach ($tareas as $tarea): ?>
<tr>
<td>
<?php echo $tarea['Tarea']['titulo'?>
</td>
<td>
<?php
if($tarea['Tarea']['hecha']) echo "Hecha";
else echo 
"Pendiente";
?>
</td>
<td>
<?php echo $tarea['Tarea']['creado'?>
</td>
<td>
<?php echo $tarea['Tarea']['modificado'?>
</td>
<td>
<!-- acciones en las tareas serán añadidas más tarde -->
<?php echo $this->Html->link('Editar', array('action'=>'edit',
$tarea['Tarea']['id'])); ?>
</td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
<?php 
echo $this->Html->link('Añadir Tarea', array('action'=>'add')); ?>
Espero que alguien me pueda ayudar, llevo 2 días estancado aquí y no he encontrado como solucionarlo.

Muchas gracias de antemano.
Saludos
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting
  #2 (permalink)  
Antiguo 25/04/2012, 18:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: cakePHP Notice (8): Undefined variable

Como no estas definiendo la variable form a través de set() en el controlador, debes usar $this->Form en tus vistas.
En vez de:
$form->create('Tarea');
Usa:
$this->Form->create('Tarea');

Si quieres usar $form, tienes que definir esa variable en tu controlador:
$this->set('form', $this->Form);
  #3 (permalink)  
Antiguo 26/04/2012, 05:32
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: cakePHP Notice (8): Undefined variable

Gracias por tu respuesta,
se soluciono el error pero ahora me sale otro :D
Por lo vsito $form->method() solo es para cakephp 1.2 y yo estoy probando con la 2.1.1
así que tengo que buscar una alternativa :)
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting

Etiquetas: cakephp, class, notice, php, undefined, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.