Pergunta

no Section_controller, eu uso o loadmodel para imprimir o nome do usuário nas seções / arquivo de índice, mas recebo o erro:
Aviso (8): Variável indefinida: usuário [APP \ views \ Section \ index.ctp, linha 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');
          }

nas seções / índice

<div><?php echo $user['User']['username']; ?></div>
Foi útil?

Solução

Você não está atribuindo a variável corretamente, tente o seguinte:

$this->set('user', $user);

$user apontando para o resultado de sua localização e definido como user, já que é isso que você está tentando chamar em sua visualização.Ou, alternativamente, use a notação compact para obter o mesmo:

$this->set(compact('user'));

O que você está fazendo agora é definir uma variável chamada data com o valor da string user, portanto, quando você faria isso em sua visualização:

echo $data;

Ele retornaria user como uma string em sua visualização.

Como um find ('all') retornará uma matriz, certifique-se de repetir os resultados em sua visualização também, como este:

foreach($user as $u) {
    echo $u['User']['username'];
}

Ou se você quiser um resultado específico, chame sua chave de array, que para o primeiro usuário seria:

echo $user[0]['User']['username'];

Outras dicas

Você cometeu um erro de digitação, tente:

$this->set('data',$user);

e em sua opinião:

<div><?php echo $data['User']['username']; ?></div>

Espero que isso ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top