3

用户控制器

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

配置文件.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
public function profile()
{
   $this->set('profile', CakeSession::read('Auth.User'));
}
于 2012-09-14T12:46:01.393 回答
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()
{

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

实际上我在控制器中所做的是

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

}

及其工作:)。谢谢大家理清逻辑。

于 2012-09-14T12:56:38.500 回答