質問

sections_controllerでは、loadmodelを使用してセクション/インデックスファイルにユーザー名を印刷しますが、エラーが発生します。
通知(8):未定義の変数:user [app views sections 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>
役に立ちましたか?

解決

変数を適切に割り当てているわけではありません。代わりにこれを試してください。

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

$user 発見結果を指して、ASを設定します user, 、それがあなたがあなたの見解で呼びかけようとしているものだからです。または、またはを使用します compact 同じことを達成するための表記:

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

あなたが今していることは、呼ばれる変数を設定することです data 文字列値で user, 、だからあなたがあなたの見解でこれをするとき:

echo $data;

それは戻ってきます user あなたの見解の文字列として。

編集

発見( 'All')は配列を返すので、次のように、あなたのビューの結果にもループをループしてください。

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

または、特定の結果が必要な場合は、最初のユーザーには次のようになります。

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

他のヒント

あなたはタイプミスを持っています、試してみてください:

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

そして、あなたの見解では:

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

お役に立てれば !

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top