doude4201 2014-02-08 13:26
浏览 53
已采纳

在帖子视图中显示用户的用户名w /相关评论

I am a newbie in CakePHP 1.3... I want to display or show the USER's username instead of USER's id, who post the COMMENTS in the POST view... Anyone can help me please?

Here is the model association I made:

  1. POSTS 'has many' COMMENTS
  2. COMMENTS 'belongs to' USERS

POST->COMMENT->USER

I already read the Containable Behavior of CakePHP 1.3, but still I can't understand it well... Please help me what codes to put in the post_controller's view & view.ctp that can show the related's related table in the POST view.

And How to call the USER's data in the POST view.

I'm still confused.

Thanks in Advance, Azure

  • 写回答

2条回答 默认 最新

  • duandaishi9268 2014-02-20 13:44
    关注

    Assumptions

    You have three tables as below

    (1) Posts
        *  id
        *  title
    
    (2) Comments
        * id
        * post_id
        * user_id
    
    (3) Users
        * id
        * name
    

    View Function in PostsController.php file

    public function view($id) {
        if (!$id) {
            throw new NotFoundException(__('Invalid post'));
        }
    
        $this->Post->recursive=2;
        $post = $this->Post->findById($id);
        if (!$post) {
            throw new NotFoundException(__('Invalid post'));
        }
        $this->set('post', $post);
    }
    

    Content of view.ctp file in app/View/Posts/ folder

    <!-- File: /app/View/Posts/view.ctp -->
    <h1><?php echo 'Post ID : '.h($post['Post']['id']); ?></h1>
    <h1><?php echo 'Post Title : '.h($post['Post']['title']); ?></h1>
    <?php 
    echo 'Comments By Users : ';
    if(!empty($post['Comment'])){
        foreach ($post['Comment'] as $key=>$value){?>
        <p>User Name : <?php echo $value['User']['name'];?></p>
        <?php }
    }
    else {
        echo '<br/>';
        echo 'No Comments Yet';
    } ?>
    

    Model File : User.php

    <?php
    class User extends AppModel {
        public $hasMany = array(
            'Comment' => array(
                    'className' => 'Comment',
            )
    );
    }
    ?>
    

    Model File : Comment.php

    <?php
    class Comment extends AppModel {
    public $belongsTo = array(
            'User' => array(
                    'className' => 'User',
                    'foreignKey' => 'user_id'
            )
    );
    }
    ?>
    

    Model File : Post.php

    <?php
    class Post extends AppModel {
    public $hasMany = array(
            'Comment' => array(
                    'className' => 'Comment',
            )
    );
    }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了