2012-02-22 8 views
0

私が取り組んでいるCakePHPアプリで本当に奇妙なバグが発生しました。

私は現在、ユーザーに署名し、ビューにデータを送信を読み込み、ユーザー名にtitle_for_layoutを設定し、私のusers_controller.phpで、次の方法持って

: - 私の見解で

function account() { 
    $this->User->id = $this->Auth->user('id'); 
    $this->set('User', $this->User->read()); 
    $this->set('title_for_layout', 'Welcome '.$this->User->Contact->field('name')); 
} 

を私は(他のものの中でも) -

<?php echo $User['Contact']['name'] ?> 

ビュー内のすべてが正常に見えます。これは、正しいユーザー(現在ログインしているユーザー)のフィールドを出力しています。しかし、title_for_layoutは全く異なるユーザーの詳細を使用しています。だから$this->User->Contact->field('name')$User['Contact']['name']と同じではありません!

ここで間違っていることが分かりませんので、誰かが私の間違いを指摘してくれることを願っています。

+0

私はヒントを持っていますが、現在のユーザーのIDを取得するために '$ _SESSION ['Auth'] ['User'] ['id']'を使用しています –

答えて

2

モデルread()は、単にfind('first')を実行し、結果をモデル$dataとして設定して返します。関連するモデルは$idに設定されていません。

あなたのケースでは$this->User->idが設定されていますが、$this->User->Contact->idは設定されていません。

+0

ありがとう。もう一度コードを振り返ってみると、これは完全に意味があります。問題がソートされました。 :) – drmonkeyninja

関連する問題