loadmodelが機能しない理由は?
-
27-10-2019 - |
質問
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>
お役に立てれば !
所属していません StackOverflow