Показать данные комментариев к сообщению laravel

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

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

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

Вы хотите получить все комментарии к определенному посту, не так ли?

Ashiq Hassan 20.09.2018 06:36

да правильно, братан

Ayam Geprek 20.09.2018 06:39
github.com/sapna-bhayal/post_comment здесь вы найдете полное решение
Sapna Bhayal 20.09.2018 07:46

@AyamGeprek проверьте мой ответ https://stackoverflow.com/a/52418428/2876362

Lakhwinder Singh 20.09.2018 07:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
1 481
4

Ответы 4

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

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

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

все еще не понимаю

Ayam Geprek 20.09.2018 07:15

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

    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;
}

проверьте мой ответ. это неправильный способ получать комментарии к постам.

Lakhwinder Singh 20.09.2018 10:56

В 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);
}

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

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');
    }

}

Другие вопросы по теме