показать комментарии к посту laravel - PullRequest
0 голосов
/ 20 сентября 2018

Итак, вчера я успешно посчитал комментарий от поста, теперь я хочу показать комментарий в админ-панели, вот мой код в контроллере

public function getComment()
{
    $user = Auth::user();
    $posts = $user->posts();

    foreach ($posts as $key => $value) {
        $posts[$key]->post_comments = PostComment::where('post_id', $value->id)->get(); 
    }
    return $posts;
}

и вот мой маршрутный код web.php, чтобы его получитьэтот комментарий

Route::get('/comment/post/{id}', 'DashboardController@getComment');

Но он получает все комментарии даже в другом сообщении, я хочу получить комментарий только из того сообщения, которое хочу.Странно, когда я нажимаю кнопку, чтобы получить случайный идентификатор, а не идентификатор из поста, это выглядит следующим образом

http://127.0.0.1:8000/comment/post/%7Bid%7D

надеюсь, что вы, ребята, можете помочьмне спасибо

Ответы [ 4 ]

0 голосов
/ 20 сентября 2018
public function getComment($id) {
    $results = Post::with(['comments'])->where('post_id',$id);
    $posts = $results->get();
}

Post.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model {

    public function comments() {
        return $this->hasMany(Comment::class, 'post_id');
    }

}
0 голосов
/ 20 сентября 2018

Я отредактировал свой код и получил это решение, добавляю id в параметр get comment

    public function getComment($id)
{
    $user = Auth::user();
    $posts = $user->posts();

    foreach ($posts as $key => $value) {
        $posts[$key]->post_comments = PostComment::where('post_id', $id)->get(); 
    }
    return $posts;
}
0 голосов
/ 20 сентября 2018

В Laravel мы можем использовать отношения, чтобы получить связанные данные.Вот пример получения комментариев пользователя: -

public function getComment()
{
    $userId = Auth::user()->id;
    $posts = Post::where('user_id', $userId)->with("post_comments")->get();
    return $posts;
}

В Пост модель, вам нужно добавить эту

use App\Comment;

public function post_comments()
{
    return $this->hasMany(Comment::class);
}

Я надеюсь, что это поможет вамрешить вашу проблему простым способом.

0 голосов
/ 20 сентября 2018

вот код для получения всех комментариев определенного поста по post-> id

public function getComment($id) {
    $comments = Comment::query()->where('post_id', $id)->get();
    return $comments;
}

Убедитесь, что у класса модели Comment есть имя таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...