Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.05.2016 18:01:54

Wise

belongsTo

Пытаюсь реализовать связь, для посчета топиков форума.

Имеется таблица ForumThread и Comments, в модели ForumThread

public function countForumThreads()
    {
        return $this->belongsTo('DraperStudio\Commentable\Models\Comment', 'thread_id');
    }
 

ForumThreadController

        foreach (ForumThread::all() as $thread) {
           $counttopics = $thread->countForumThreads();
        }

        dd($counttopics);

dd- выдает

#query: QueryBuilder
  +wheres: array:1 [▼
        0 => array:5 [▼
          "type" => "Basic"
          "column" => "comments.id"
          "operator" => "="
          "value" => 10
          "boolean" => "and"
        ]
      ]

Почему он берет только 1 запись, что я не так делаю, как взять все

#2 11.05.2016 10:58:14

Re: belongsTo

Насколько я понимаю вам требуется использовать $this->hasMany

Не в сети

#3 11.05.2016 12:32:30

Re: belongsTo

dd- выдает
#query: QueryBuilder

И верно выдает, осталось получить результат
через ->get()
Или юзать динамическую проперти
$counttopics = $thread->countForumThreads

Советую почитать
https://laravel-news.ru/blog/tutorials/ … -relations

Не в сети

#4 11.05.2016 12:34:41

Re: belongsTo

won пишет:

Насколько я понимаю вам требуется использовать $this->hasMany

И кстати  тоже да, как это тред принадлежит комменту?
Это со стороны коммента будет belongsTo

Не в сети

#5 15.05.2016 18:06:36

Wise

Re: belongsTo

Вот что мне помогло return $this->morphMany('App\ForumThread','thread');.

Пришлось добавить в таблицу thread_type

Подвал раздела