3

ユーザーコントローラー

public function profile()
{
   $this->set('profile', $this->User->find('all'));
}

profile.ctp

<?php
echo $profile['User']['name'];  // Where user is the model and name is the name field  in db.
?>

私は何か間違ったことをしていることを知っていますが、それに対する良い解決策を見つけることができませんでした.

4

5 に答える 5

1
public function profile(){
   $this->set('current_user', $this->Auth->user());
}
于 2012-09-14T13:12:34.950 に答える
0

クエリを実行する必要があります。持っている場合は、すでにユーザーがログに記録されています

認証

次のような$componentsのAppcontrollerで:

class AppController extends Controller {

    public $components = array(
        'Session',
        'Auth' => array(
            'authenticate' => array(
                'Form' => array(
                    'fields' => array('username' => 'email')
                )
            )
        ),
    );

これで、コントローラーに、このモードで認証されたユーザーの変数があります。

$this->Session->read('Auth.User.id'));

次のようなクエリを実行して、ログに記録されたユーザーのレコードをデータベースに取得できます。

this->set('profile', $this->User->find('all', array('recursive' => 1,
                    'conditions' => array('User.id' =>  $this->Auth->user()))));
于 2012-09-14T12:34:37.373 に答える
0

私が実際にコントローラーで行ったことは

   public function profile()
{
   $id=$this->Session->read('Auth.User.id');
   $this->set('profile', $this->User->findByid($id));

}

そしてその働き:)。ロジックをクリアしていただきありがとうございます。

于 2012-09-14T12:56:38.500 に答える
0
public function profile()
{
   $this->set('profile', CakeSession::read('Auth.User'));
}
于 2012-09-14T12:46:01.393 に答える
0

これを試して:

public function profile()
{

    $user = $this->Auth->user();
    $this->set('profile', $this->User->find('all',
        array('conditions'=>array('User.id'=>$user['id']))));
}
于 2012-09-14T12:52:28.520 に答える