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条)

报告相同问题?

悬赏问题

  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False