PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Monday, April 18, 2022

[FIXED] How to link comments to each post by id with Laravel Blade

 April 18, 2022     laravel, loops, php     No comments   

Issue

I have created a Post and Comment application. I am trying to link the comments to the id of the post. I am trying to use PHP in a Blade template to do this. I get the error that the variable post_id does not exist. I want to use the @if and @foreach of Blade. The problem seems to be in the @if statement.

Here is my HTML:

  <div class="col-md-9">
      <div class="row">
        @foreach($posts as $post)
          <div class="col-md-12 post" id="post{{ $post->id }}">
              <div class="row">
                  <div class="col-md-12">
                      <h4>
                          {{ $post->title }}
                      </h4>
                  </div>
              </div>
              <div class="row">
                  <div class="col-md-12 post-header-line">
                      <span class="glyphicon glyphicon-user"></span> by <a href="#">{{ $post->user->firstName }} {{ $post->user->lastName }}</a> | <span class="glyphicon glyphicon-calendar">
                      </span> {{ $post->created_at }} | <span class="glyphicon glyphicon-comment"></span><a href="#">
                          3 Comments</a>
                  </div>
              </div>
              <div class="row post-content">
                  <div class="col-md-2">
                      <a href="#">
                          <img src="/images/random/postimg.jpg" alt="" class="img-responsive postImg">
                      </a>
                  </div>
                  <div class="col-md-10">
                      <p>
                          {{ $post->post }}
                      </p>
                  </div>
              </div>
              <div class="row add-comment">
                <div class="form-group">
                  <input type="text" name="addComment" placeholder="Add your comment" class="form-control" v-model="comment">
                </div>
                <input id="addComment" type="submit" name="submitComment" value="Submit Comment" class="btn btn-default" v-on:click="submitComment" data-id="{{ $post->id }}">

              </div>

              @if($post->comment->post_id == $post->id)
                @foreach($post->comment as $comment)

                <div class="row">
                    <div class="col-md-12 mb-r">
                        <div class="card example-1 scrollbar-ripe-malinka">
                            <div class="card-body">
                                <h4 id="section1"><strong>By: {{ $comment->user->firstName }} {{ $comment->user->lastName }}</strong></h4>
                                <p>{{ $comment->comment }}</p>
                            </div>
                        </div>
                    </div>
                </div>

                @endforeach
              @endif
          </div>
          @endforeach
      </div>
  </div>

Here is my PostController:

  public function index(){
      $posts = Post::with('comment', 'user')->orderBy('id', 'desc')->limit(20)->get();
      return view('post.posts')->with('posts', $posts);
    }

Solution

You don't need @if statement, remove it. $post->comment is a collection, that 's why your are not getting post_id. if you want to check, then check inside foreach.

            @foreach($post->comment as $comment)
            <div class="row">
                <div class="col-md-12 mb-r">
                    <div class="card example-1 scrollbar-ripe-malinka">
                        <div class="card-body">
                            <h4 id="section1"><strong>By: {{ $comment->user->firstName }} {{ $comment->user->lastName }}</strong></h4>
                            <p>{{ $comment->comment }}</p>
                        </div>
                    </div>
                </div>
            </div>
            @endforeach


Answered By - Sohel0415
Answer Checked By - Candace Johnson (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing