Domanda

In Sections_Controller utilizzo loadModel per stampare il nome utente in sezioni/file indice ma ricevo errore:
AVVISO (8): variabile indefinita: utente [app viste sezioni index.ctp, riga 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');
          }

nelle sezioni/indice

<div><?php echo $user['User']['username']; ?></div>
È stato utile?

Soluzione

Non stai assegnando correttamente la variabile, prova invece:

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

$user indicando il tuo risultato di ricerca e imposta come user, dato che è quello che stai cercando di chiamare nella tua vista. O in alternativa utilizzare il file compact Notazione per ottenere lo stesso:

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

Quello che stai facendo ora è impostare una variabile chiamata data con il valore della stringa user, quindi quando lo faresti a tuo avviso:

echo $data;

Sarebbe tornato user come stringa nella tua vista.

MODIFICARE

Dato che una ricerca ("tutto") restituirà un array, assicurati di fare il ciclo anche sui risultati nella tua vista, in questo modo:

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

O se si desidera un risultato specifico, chiama il tasto array, che per il primo utente sarebbe:

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

Altri suggerimenti

Hai un errore di battitura, prova:

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

E poi nel tuo punto di vista:

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

Spero che sia di aiuto !

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top