如何访问配置文件模型文件名字段以显示每个用户配置文件图片

时间:2012-12-10 16:16:15

标签: cakephp cakephp-1.3 cakephp-2.0 cakephp-2.1 cakephp-appmodel

大家好我试图访问每个用户的个人资料图片文件名,以及他们何时登录到系统。我有一个'配置文件'表,我需要在我的default.ctp视图文件中使用它,因为我正在尝试加载配置文件图像。

我目前在appController的beforefilter中使用$ current_user变量来访问$ current_user ['filename']形式的'users'。我的用户和个人资料关系已在我的模型中相应设置。如果有人可以提供帮助,我会很感激。提前谢谢。

我的AppController的beforeFilter声明:

$this->loadModel('Profile');
    $profiles = $this->Profile->find('all');
    $this->set('profiles', $profiles);

我的default.ctp视图文件代码尝试:

<?php echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$profile['filename']); ?>

当前代码:

<?php echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$current_user['filename']); ?>

我需要能够访问当前用户的个人资料模型文件名字段,以便显示已保存到文件名字段的图片。它将在用户登录时调用,我想显示此用户个人资料图片。

在default.ctp视图中我使用下面的代码,但我需要针对每个用户个人资料图片进行调整。

foreach($profiles as $profile) : 
    echo $current_user['Profile']['filename'];
endforeach

1 个答案:

答案 0 :(得分:2)

约书亚,首先,不要再发布,而是尝试将所有帖子保持在一起(您可以编辑帖子,这有助于其他正在搜索相同答案的人)。

How to make a Model available in a View Cakephp 2.x

同样,我建议使用view元素和requestAction执行此操作,但由于您上次没有接受该答案,我将使用您在此处执行的操作:

如果用户已经过身份验证,您应该拥有一些可以签入的信息:

 $this->Auth->User();

所以,我按照以下方式重新编写代码:

$this->loadModel('Profile');
$user_id = $this->Auth->User('id');
$profile = $this->Profile->find('first', array('conditions'=>array('Profile.user_id'=>$user_id), 'fields'=>array('filename'));
$this->set(compact('profile'));

现在,您可以在default.ctp文件中调用以下内容:

echo $this->Html->image('/uploads/profile/filename/thumb/small/'.$profile['Porfile']['filename']);