1

我想检索页面中 post_id(post1) 下的所有评论:

//localhost/posts/post1/ 

表注释

id:int[primary],  comment:varchar,  post_id:varchar, comment_id:varchar
1                 this is a comment post_1           comment_1

桌柱

id:int[primary], post_title:varchar, post_id:varchar
1                this is post title  post_1

模型注释.php

public function post()
{
    return $This->belongsTo('Post');

}

模型post.php

public function comments()
    {
        return $this->hasMany('Comment');
    }

控制器postController.php

 public function show($id)
    {
       $comments = Post::where('post_id','=',$id)->first()
                   ->comments()->where('post_id','=',$id)->get();

    }

当我访问 //localhost/posts/post1/ 时,没有显示相关评论。SQL运行如下:

select * from `posts` where `post_id` = 'post1' limit 1
select * from `comments` where `comments`.`post_id` = '1' and `post_id` = 'post1'

如何删除`post_id= '1'` 以检索相应的评论?

4

1 回答 1

0

在您的帖子表中,id 列应命名为 id 而不是 post_id,因为这是 laravel 所期望的。可以将 eloquent 模型中的主键设置为 id 以外的其他值,但最好使用 id 并遵循标准。请参阅此处的文档 http://four.laravel.com/docs/eloquent。将 id 列命名为 id 后,您可以通过 Post::find($id) 获取单个帖子

于 2013-05-21T06:21:57.210 回答