首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel $posts>comments()不在这里工作

Laravel $posts>comments()不在这里工作
EN

Stack Overflow用户
提问于 2014-06-11 17:44:37
回答 1查看 2.3K关注 0票数 1

下面是我的模型的代码:

models/Book.php

类图书扩展\雄辩{ 函数Post(){返回$this->hasMany('Post');}函数用户(){返回$this->归属于(‘User’);}公共函数覆盖(){返回$this->变形Image(‘Image’,'imageable');}公共函数删除(){$this->Post()->comments()->delete();$this->Post()->delete();$this->->delete();$this->->delete();//删除模型返回父程序::delete ();} }

models/Post.php

类邮政扩展雄辩{ 函数book() {返回$this->归属到(‘Book’);}函数注释(){返回$this->hasMany(‘注释’);}函数用户(){返回$this->归属到(‘User’);}公共函数删除(){$this->注释(->delete();//删除模型返回父级::delete();} }

models/Comment.php

类注释扩展了雄辩的{ 函数post() {返回$this->归属到(‘Post’);}函数user() {返回$this->归属到(‘User’);} }

但在我的UserController.php中,我无法访问我的评论。我试着用这些代码:

公共函数显示($id){ $user =user::$user($id);$posts = Post::whereUserId($user->id) ->orderBy('created_at','deac')->get();$comments =$Post->注释();dd($comments)};

这句话总是说:

如何访问我在帖子下的评论?而且,我不认为$this->posts()->comments()->delete();不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 17:55:29

User模型中添加如下关系:

代码语言:javascript
复制
// User model
public function books()
{
    return $this->hasMany('Book');
}

然后在你的controller

代码语言:javascript
复制
public function show($id)
{
    // User->hasMany:books->hasMany:posts->hasMany:Comments
    $user = User::with('books.posts.comments')->find($id);
    return View::make('viewName')->with('user', $user);
}

然后在你的view

代码语言:javascript
复制
{{ $user->nameMaybe }}
{{ $user->emailMaybe }}
@foreach($user->books as $book)
    {{ $book->title }}
    {{ $book->author }}
    @foreach($book->posts as $post)
        {{ $post->slugMaybe }}
        {{ $post->postTitleMaybe }}
        @foreach($post->comments as $comment)
            {{ $comment->commenttextMaybe }}
        @endforeach
    @endforeach
@endforeach

返回的User模型的结构如下(根据您的关系):

代码语言:javascript
复制
Model: User (object)
           ->name (Property of User Model)
           ->email (Property of User Model) and more properties
           -> books (property of User Model, collection of Book Models
              -> [0] Book (has properties)
              -> [1] Book (has properties
                 -> posts (property of [1]Book, collection of Post Models
                 -> [0] Post (has properties)
                 -> [1] Post (has properties
                    -> comments (property of [1]Post, collection of Comment Models
                    -> [0] Comment (has properties)
                    -> [1] Comment (has properties
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24169301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档