尝试获取非对象laravel 5.3的属性而未经过身份验证

时间:2016-12-01 22:31:54

标签: php laravel laravel-blade

当我尝试匹配时,检查评论的人是否与管理员相同:

@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

1 个答案:

答案 0 :(得分:0)

您需要检查用户是否已经过第9行中的身份验证。您可以执行以下操作:

@if(Auth::user() && $comment->commented_by == Auth::user()->email)

检查是否有经过身份验证的用户,如果是,则可以查看该用户的电子邮件。