За последние 24 часа нас посетили 22137 программистов и 1103 робота. Сейчас ищут 750 программистов ...

как правильно подсчитать кол-во комментов для каждого поста?

Тема в разделе "Laravel", создана пользователем Qvei, 12 май 2020.

  1. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    есть CommentComtroller.php:
    Код (Text):
    1. class CommentController extends Controller
    2. {
    3.  
    4.         public function __construct()
    5.     {
    6.         $this->middleware('auth');
    7.     }
    8.         public function store(Request $request)
    9.     {
    10.  
    11.         $comment = new Comment;
    12.         $comment->body = $request->get('comment_body');
    13.         $comment->user()->associate($request->user());
    14.         $novini = Novini::findOrFail($request->get('novini_id'));
    15.         $novini->comments()->save($comment);
    16.  
    17.         return back();
    18.     }
    19. }
    и NoviniController.php c кодом:
    Код (Text):
    1. public function showwww($slug) {
    2.         $novini = App\Novini::where('slug', $slug)->first();
    3.         $novini->increment('view');
    4.         $novinis = App\Novini::where('slug', '!=', $slug)->latest('date')->get();
    5.         $ccomment = App\Comment::count();
    6.         Cookie::queue('cookiesfromhell','value',3600);
    7.         return view('novinis.showwww', compact('novini', 'novinis', 'ccomment'));
    8.     }
    кол-во коментов для каждого поста одинаковое.
    Подскажите как правильно запрос сделать чтоб для каждого поста только его кол-во коментов было
     
  2. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    всем спасибо) вопрос решил:)
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    @Qvei совет на будущее: если ты нашел решение, даже если это была просто глупая ошибка/опечатка — напиши что это было. Поставь себя на место… себя :) Ты не уникален. Как было бы здОрово, если бы ты сразу нашёл ответ на точно такую же ситуацию.
     
  4. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    eloquent все решил, в модели новости код примерно такой должен быть
    Код (Text):
    1. public function getCommentCountAttribute(){
    2.         return $this->comments->count();
    3.     }
    в модели коментов должны быть настроены связи belongsTo c моделью новости примерно так
    Код (Text):
    1. public function prowivka(){
    2.         return $this->belongsTo('App\Prowivka');
    3.     }
    и в контроллере новости можно прописать что-то типа
    Код (Text):
    1. $prowivka->comment_count;
    во вьюхе выводить получается так
    Код (Text):
    1. {{$novini->comment_count}}
    --- Добавлено ---
    теперь никак не могу понять как вывести все коменты во вьюхе у которой нет модели.. как их туда передать не подскажеш?
    есть контроллер с таким кодом
    Код (Text):
    1. $novinis = App\Novini::all();
    2.         $prowivkas = App\Prowivka::all();
    3.         $ogljadis = App\Ogljadi::take(6)->latest('date')->get();
    4.         $stattis = App\Statti::take(6)->latest('date')->get();
    и view.blade в котором это выводится просто через @foreach. Нужно передать количество коментов к новостям в эту вьюху, но пока ничего не работает...
    как это правильно передать, а?
     
    artoodetoo нравится это.
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Вот тот случай, когда не-английский язык мешает читать код. Я не понимаю что тут написано.

    Думаю что коментарий должен быть связан с постом (новостью/статьёй) как многие-к-одному. Если так описать, то во вьюху "статья и коментарии к ней" достаточно передать запись статьи $article. Остальное вытягивается как

    @foreach ($article->comments as $comment)
     
    Qvei нравится это.
  6. Qvei

    Qvei Новичок

    С нами с:
    10 ноя 2019
    Сообщения:
    60
    Симпатии:
    4
    Спасибо. просто переседел ночью) все работает.. в моем случае (если связи настроены) нужно было просто {{$statti->comment_count}}, видимо я букву пропустил потому не роботало.. по ночам сижу