loadmodel не работает, почему? - PullRequest
0 голосов
/ 12 января 2012

в section_controller. Я использую loadmodel, чтобы напечатать имя пользователя в файле section / index, но получаю ошибку:
Примечание (8): неопределенная переменная: пользователь [APP \ views \ section \ index.ctp, строка 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');
          }

в разделах / указатель

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

Ответы [ 2 ]

2 голосов
/ 12 января 2012

У вас есть опечатка, попробуйте:

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

, а затем, на ваш взгляд:

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

Надеюсь, это поможет!

1 голос
/ 12 января 2012

Вы не назначаете переменную правильно, попробуйте вместо этого:

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

$user указывает на ваш результат поиска и устанавливается как user, так как это то, что вы пытаетесь вызвать в своем представлении. Или, альтернативно, используйте обозначение compact для достижения того же:

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

То, что вы сейчас делаете, это установка переменной с именем data со строковым значением user, поэтому, когда вы сделаете это в своем представлении:

echo $data;

Возвращает user в виде строки в вашем представлении.

EDIT

Так как find ('all') вернет массив, убедитесь, что вы также просматриваете результаты в вашем представлении, например так:

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

Или, если вам нужен конкретный результат, вызовите его ключ массива, который для первого пользователя будет:

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