LoadModel no funciona ¿Por qué?
-
27-10-2019 - |
Pregunta
En las secciones_controller uso LoadModel para imprimir el nombre de usuario en las secciones/archivo de índice pero recibo error:
Aviso (8): Variable indefinida: Usuario [App Views Sections Index.ctp, línea 3
public function index ()
{
$this->loadModel('User');
$user = $this->User->find('all');
$this->Section->find('threaded', array('order' => array('Section.created ASC')));
$this->set('data','user');
}
En las secciones/índice
<div><?php echo $user['User']['username']; ?></div>
Solución
No está asignando la variable correctamente, intente esto en su lugar:
$this->set('user', $user);
$user
señalando su resultado de búsqueda y establecido como user
, ya que eso es lo que estás tratando de llamar en tu opinión. O alternativamente usar el compact
notación para lograr lo mismo:
$this->set(compact('user'));
Lo que estás haciendo ahora es establecer una variable llamada data
con el valor de la cadena user
, Entonces, cuando hicieras esto en tu opinión:
echo $data;
Volvería user
como una cadena en tu vista.
EDITAR
Dado que un hallazgo ('all') devolverá una matriz, asegúrese de recurrir a los resultados en su vista también, así:
foreach($user as $u) {
echo $u['User']['username'];
}
O si desea un resultado específico, llame a su clave de matriz, que para el primer usuario sería:
echo $user[0]['User']['username'];
Otros consejos
Tienes un error tipográfico, intenta:
$this->set('data',$user);
Y luego en tu opinión:
<div><?php echo $data['User']['username']; ?></div>
Espero que esto ayude !