我正在学习Laravel,有一件事是我无法解决的。
我有什么:
用户,帖子,评论和相应模型表
user.php的:
public function comments() { return $this->hasMany(Comment::class); }
public function publishComment(Comment $comment)
{
$this->comments()->save($comment);
}
post.php中:
public function comments() { return $this->hasMany(Comment::class); }
Comment.php:
public function post() { return $this->belongsTo(Post::class); }
public function user() { return $this->belongsTo(User::class); }
我想要什么?
由于我有博客,一个登录用户可以创建许多帖子(这是有效的)。 但是,相同的登录用户可以为一个帖子创建许多评论。 (用户有很多评论,帖子有很多评论)。
表格
用户:| id |名字|电子邮件|密码
评论:| id | user_id | post_id |体
发布:| id | user_id |标题|体
我尝试了什么? 我创建了控制器
CommentsController:
class CommentsController extends Controller
{
public function store(Post $post)
{
$this->validate(request(), ['body' => 'required|min:2']);
auth()->user()->publishComment(
new Comment(request('body'));
);
return back();
}
在我的刀片文件中,我只想要$ comment-> user-> name(获取评论所属的用户的名称)
我遇到错误: 尝试获取非对象的属性
<?php echo e($comment->user->name); ?>
任何帮助都将不胜感激。
答案 0 :(得分:0)
您可以在view.blade.php中执行此操作:
// Here I am assuming you have a $post variable that contains your blog post.
<ul>
@foreach ($post->comments as $comment)
<li>{{ $comment->user->name }}</li>
@endforeach
</ul>
这将循环显示您对博客帖子的所有评论并显示所有者的姓名,希望这会有所帮助。