从两个表Cakephp查看每条记录的图像

时间:2014-07-18 12:25:36

标签: php cakephp

我是cakephp的新手......我有一个大问题! 我有两张桌子

Users
- id
- name

Photos
- id
- title
- id_user

现在在UsersController中我已经

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

并在视图中

<?php foreach($user as $post): ?>
<h1><?php echo $this->Html->link($post['User']['name'],""); ?><h1>
<p><?php echo $post['User']['id']; ?><p>
<hr />
<?php endforeach; ?>

现在我想查看他名字附近的用户图片......例如

<?php foreach($user as $post): ?>
<h1><?php echo $this->Html->link($post['User']['name'],""); ?><h1>
<p><?php echo $post['User']['id']; ?><p>

<p>PHOTO <?php echo $photo; ?><p>

<hr />
<?php endforeach; ?>

我该怎么做?

非常感谢 的Alessandro

2 个答案:

答案 0 :(得分:1)

id_user更改为照片表格中的user_id

在您的用户模型中添加以下关系:

  public $hasOne = array(
        'Photo' => array(
            'className' => 'Photo',
            'dependent' => true
        )
    );

在UsersController中更改函数索引如下:

  public function index() {
        $this->set('user', $this->User->find('all', array(
                    'contain' => array('Photo'))));
    }

最后改变你的观点如下:

<?php foreach($user as $post): ?>
<h1><?php echo $this->Html->link($post['User']['name'],""); ?><h1>
<p><?php echo $post['User']['id']; ?><p>

<p>PHOTO <?php echo $this->Html->image($post['Photo']['title']); ?><p>

<hr />
<?php endforeach; ?>

注意:我假设您在照片表的标题栏中有图像路径。

答案 1 :(得分:0)

如果您要将图像名称存储在数据库中,您可以执行以下操作:

<p><img src="<?php echo '/app/media/'.$post['User']['photo']; ?>" /></p>

如果您想要将图像存储为用户ID,请执行以下操作:

<p><img src="<?php echo '/app/media/'.$post['User']['id']; ?>.jpg" /></p>