大家好我试图访问每个用户的个人资料图片文件名,以及他们何时登录到系统。我有一个'配置文件'表,我需要在我的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
答案 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']);