当我尝试匹配时,检查评论的人是否与管理员相同:
@if( $comment->commented_by == Auth::user()->email)
它给了我
"试图获得非对象laravel 5.3"。
的属性
我一遍又一遍地检查,我有对象而不是数组。然后我试图删除"Auth::user()->email"
部分并硬编码我的电子邮件。工作正常。但是当我登录时,我的代码工作得很好!
如何解决这个问题,更重要的是,为什么会这样?
我的完整刀片代码
@section('content')
<div class="body">
<div id="postSection">
<p id="post">{{ $post->post }}</p>
<p id="date">{{ $post->created_at->diffForHumans() }}</p>
</div>
<div id="addCommentSection">
<form method="POST" action="{{ url('/create/'.$post->id) }}">
@if(Auth::check())
<input type="email" name="email" id="admin" value="{{ Auth::user()->email }}" >
@else
<input type="email" name="email" placeholder="your email" required><br>
@endif
<textarea placeholder="your comment..." name="comment" required></textarea><br>
<input type="submit" name="submit" value="comment!"><br>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</div>
<div class="commentSection">
@if(count($comments) > 0)
@foreach($comments as $comment)
<div id="full_comment">
@if( $comment->commented_by == 'admin@email.com')
<p id="my_name" class="commented_by"><a> Author</a></p>
@else
<p class="commented_by">{{ $comment->commented_by }}</p>
@endif
<p class="comment">{{ $comment->comment }}</p>
<p class="time"><strong> {{ $comment->created_at->diffForHumans() }} </strong></p>
</div>
@endforeach
@endif
</div>
</div>
TIA
答案 0 :(得分:0)
您需要检查用户是否已经过第9行中的身份验证。您可以执行以下操作:
@if(Auth::user() && $comment->commented_by == Auth::user()->email)
检查是否有经过身份验证的用户,如果是,则可以查看该用户的电子邮件。