Итак, вчера мне удалось подсчитать комментарий к публикации, теперь я хочу показать комментарий на панели администратора, так что вот мой код в контроллере
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');
Но он извлекает все комментарии даже в другом сообщении, я хочу получить комментарий только к тому же сообщению, которое я хочу. Странно, когда я нажимаю кнопку, он получает случайный идентификатор, а не идентификатор из сообщения, это выглядит так
надеюсь, вы, ребята, можете мне помочь, спасибо
да правильно, братан
@AyamGeprek проверьте мой ответ https://stackoverflow.com/a/52418428/2876362






вот код для получения всех комментариев к определенному сообщению по post-> id
public function getComment($id) {
$comments = Comment::query()->where('post_id', $id)->get();
return $comments;
}
Убедитесь, что класс модели 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;
}
проверьте мой ответ. это неправильный способ получать комментарии к постам.
В 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');
}
}
Вы хотите получить все комментарии к определенному посту, не так ли?