1 Hiển thị kết quả truy vấn trong một lưỡi dao khác

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Ban đầu tôi đã cố gắng hiển thị kết quả theo phương thức, nhưng thay đổi nó để hiển thị kết quả ở một lưỡi dao khác. Tôi muốn lấy tất cả các ý kiến ​​được thực hiện cho một bài đăng bằng cách sử dụng post_id của nó. Nhưng tôi nhận được lỗi sau: Phương thức GET không được hỗ trợ cho tuyến đường này. Các phương thức được hỗ trợ: POST.

Lưỡi kiếm từ nơi tôi nhận được post_id sau khi nhấp vào Tất cả Nhận xét:

<section class="row posts">
        <div class="col-md-6 col-md-3-offset">
            <header><h3>other posts</h3></header>
            @foreach($posts as $post)
            <article class="post">
                <p>{{ $post->content }}</p>
                <div class="info">Posted by {{ $post->user->username }} on {{ $post->created_at }}</div>
                <div class="interaction">
                    <a href="#" class="like" id="like" data-postid="{{ $post->id }}">{{ Auth::user()->likes()->where('post_id', $post->id)->first() ? 'Liked' : 'Like' }}</a> |
                    <a href="#" class="comment" id="comment" data-postid="{{ $post->id }}">Comment</a> |
                    <a href="{{ route('show.comments',['post_id' => $post->id]) }}" class="allcomments" id="allcomments" data-postid="{{ $post->id }}">All Comments</a>
                    @if(Auth::user() == $post->user)
                        |
                        <a href="#" class="edit" data-postid="{{ $post->id }}">Edit</a> |
                        <a href="{{ route('post.delete',['post_id' => $post->id]) }}">Delete</a>
                    @endif
                </div>
            </article>
            @endforeach
        </div>
    </section>

Tuyến đường:

Route::middleware(['web'])->group(function()
{
Route::post('/showcomment/{post_id}',[
        'uses' => 'CommentController@getComments',
        'as' => 'show.comments',
        'middleware' => 'auth'
    ]);
}

Bộ điều khiển:

public function getComment($post_id)
    {
        $comments = Comment::where('post_id',$post_id)->orderBy('created_at','desc')->get();
        return view('showcomments',['comments' => $comments]);
    }

Lưỡi mà tôi muốn xuất kết quả:

@extends('layouts.master')

@section('content')
    <section class="row posts">
        <div class="col-md-6 col-md-3-offset">
            <header><h3>other Comments</h3></header>
            @foreach($comments as $comment)
                <article class="comment">
                    <p>{{ $comment->body }}</p>
                    <div class="info">Made by {{ $comment->user->username }} on {{ $comment->created_at }}</div>
                    <div class="interaction">
                        @if(Auth::user() == $comment->user)
                            |
                            <a href="#" class="edit" data-commentid="{{ $comment->id }}">Edit</a> |
                            <!--copy delete from post here including the modal-->
                        @endif
                    </div>
                </article>
            @endforeach
        </div>
    </section>
@endsection
    
0
  1. bạn có thể làm dd($comments) để xem bạn có nhận được dữ liệu không?
    2019-05-08 16: 06: 46Z
  2. Để xem, hãy thử return View::make('commentboard')->with('comments', $comments); và cho tuyến đường của bạn: Route::get('/commentboard', 'CommentController@getComment')->name('commentboard');
    2019-05-08 16: 09: 05Z
  3. @ AmartyaBarua, bạn có thể chuyển postid từ chế độ xem của mình sang bộ điều khiển bằng tham số tuyến đường.
    2019-05-08 17: 41: 39Z
  4. @ AmartyaBarua hiện đang hoạt động?
    2019-05-08 19: 31: 44Z
  5. Từ những gì tôi nhận được, thực sự không được hỗ trợ, giống như các trạng thái lỗi, tuyến đường của bạn gửi đến yêu cầu bài đăng
    2019-05-08 19: 44: 28Z
1 Câu trả lời                              1                         

Về cơ bản, đây sẽ là cách tiếp cận của tôi:

Route::get("/posts/{post_id}/comments", "PostsController@getComments");

Trình điều khiển:

// get comments...
public function getComments ($postId) {
    $comments = Post::findOrFail($postId)->comments;

   return view('showcomments',['comments' => $comments];
}

Để các công việc trên hoạt động: bạn đã xác định mối quan hệ nhận xét bài đăng trong trường hợp này trong mô hình bài đăng:

// Post Model: a post has many comments

public function comments () {
   return $this->hasMany(Comments::class, 'post_id');
}
    
0
2019-05-08 19: 50: 37Z
nguồn đặt đây