Php Laravel刀片视图中的未定义变量

Php Laravel刀片视图中的未定义变量,php,laravel,Php,Laravel,我正在尝试创建一个blade视图,以便在我的应用程序中查看特定帖子的评论,但我遇到一个未定义的变量错误: a11883d0293a033eba2997ec69df8cdf4ea6a835.php第9行中出现错误异常: 未定义变量:注释视图: C:\xampp\htdocs\directory\resources\views\admin\comments\show.blade.php 我是新来学习拉威尔和道歉,如果这已经回答了之前,但我一直无法解决这个问题,通过研究在这个网站上迄今为止。谢谢大家!

我正在尝试创建一个blade视图,以便在我的应用程序中查看特定帖子的评论,但我遇到一个未定义的变量错误:

a11883d0293a033eba2997ec69df8cdf4ea6a835.php第9行中出现错误异常: 未定义变量:注释视图: C:\xampp\htdocs\directory\resources\views\admin\comments\show.blade.php

我是新来学习拉威尔和道歉,如果这已经回答了之前,但我一直无法解决这个问题,通过研究在这个网站上迄今为止。谢谢大家!

show.blade.php

Comment.php模型


您缺少的是对传递给视图的$comments进行迭代

因此,请尝试用以下内容替换您的内容:

@foreach($comments as $comment)
<tr>
    <td>{{$comment->id}}</td>
    <td>{{$comment->author}}</td>
    <td>{{$comment->email}}</td>
    <td>{{$comment->body}}</td>
    <td><a href="{{route('home.post', $comment->post->id)}}">View Post</a></td>
    <td>
        @if($comment->is_active == 1)
        {!! Form::open(['method'=>'PATCH','action'=> ['PostCommentsController@update', $comment->id]]) !!}
        <input type="hidden" name="is_active" value="0">
        <div class="form-group">
           {!! Form::submit('Un-approve', ['class'=>'btn btn-info']) !!}
        </div>

        {!! Form::close() !!}

        @else

      {!! Form::open(['method'=>'PATCH','action'=> ['PostCommentsController@update', $comment->id]]) !!}

     <input type="hidden" name="is_active" value="1">
     <div class="form-group">
       {!! Form::submit('Approve', ['class'=>'btn btn-success']) !!}
     </div>

     {!! Form::close() !!}
    @endif
   </td>
    <td>
  {!! Form::open(['method'=>'DELETE','action'=> ['PostCommentsController@destroy', $comment->id]]) !!}
    <div class="form-group">
    {!! Form::submit('Delete', ['class'=>'btn btn-danger']) !!}
    </div>
          {!! Form::close() !!}
    </td>
</tr>
@endforeach

你在控制器中有$comments复数形式,在刀片文件中有$comments单数形式。在用这个替换我的身体之后,我仍然得到错误!检查我的编辑。并确保在foreach循环外不使用$comment。谢谢!它解决了这个错误,但我没有得到任何评论显示时,有评论的文章,应该显示。我将不得不进一步研究这个问题:Np。如果你有任何意见,你应该检查你的数据库。如果有帮助的话,请考虑接受这个答案。
namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    protected $fillable = [
        'post_id',
        'author',
        'email',
        'body',
        'is_active'
    ];

    public function replies()
    {
        return $this->hasMany('App\CommentReply');
    }

    public function post()
    {
        return $this->belongsTo('App\Post');
    }
}
@foreach($comments as $comment)
<tr>
    <td>{{$comment->id}}</td>
    <td>{{$comment->author}}</td>
    <td>{{$comment->email}}</td>
    <td>{{$comment->body}}</td>
    <td><a href="{{route('home.post', $comment->post->id)}}">View Post</a></td>
    <td>
        @if($comment->is_active == 1)
        {!! Form::open(['method'=>'PATCH','action'=> ['PostCommentsController@update', $comment->id]]) !!}
        <input type="hidden" name="is_active" value="0">
        <div class="form-group">
           {!! Form::submit('Un-approve', ['class'=>'btn btn-info']) !!}
        </div>

        {!! Form::close() !!}

        @else

      {!! Form::open(['method'=>'PATCH','action'=> ['PostCommentsController@update', $comment->id]]) !!}

     <input type="hidden" name="is_active" value="1">
     <div class="form-group">
       {!! Form::submit('Approve', ['class'=>'btn btn-success']) !!}
     </div>

     {!! Form::close() !!}
    @endif
   </td>
    <td>
  {!! Form::open(['method'=>'DELETE','action'=> ['PostCommentsController@destroy', $comment->id]]) !!}
    <div class="form-group">
    {!! Form::submit('Delete', ['class'=>'btn btn-danger']) !!}
    </div>
          {!! Form::close() !!}
    </td>
</tr>
@endforeach
@if($comments->count())