下面是我的模型的代码:
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();不起作用。
发布于 2014-06-11 17:55:29
在User模型中添加如下关系:
// User model
public function books()
{
return $this->hasMany('Book');
}然后在你的controller
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
{{ $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模型的结构如下(根据您的关系):
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 propertieshttps://stackoverflow.com/questions/24169301
复制相似问题