красноречивые отношения не работают

Я новичок в Laravel. Я пытаюсь построить отношения между двумя таблицами.

мои таблицы базы данных

таблица комментариев

            $table->increments('id');
$table->text('comment');
$table->string('shop_name','80');
$table->bigInteger('product_id');
$table->timestamps();

таблица comments_images

        $table->increments('id');
$table->bigInteger('comment_id');
$table->string('images','255');
$table->string('shop_name','80');
$table->timestamps();

=========================

Модель комментария

public function images()
{
return $this->hasMany(Comments_images::class,'comment_id');
}

Комментарии_изображения модели

public function comments()
{
return $this->belongsTo(Comment::class);
}

Я пытался вернуть связанные данные, как это

return Comments_images::find(439)->comments()->get();

return Comment::find(880)->images()->get();return (new Comment())->images()->get();

Никто из них не работает!

Что я должен делать?

1

Решение

Правильно ли вы используете пространство имен? Например, «App \ Comments_images». Кроме того, модели лучше оставить в единственном числе, например «Comment» или «Comment_Image». Я говорю об этом, потому что вы не последовательны, что может быть причиной ошибки. Последнее, что нужно, это использовать строку класса, а не возвращать реальный класс. Посмотрите на приведенные ниже примеры, обратите внимание на заглавные буквы и на некоторые вещи я не ставлю ‘s’.

// in Comment model
public function images()
{
return $this->hasMany('App\Comments_Image','comment_id');
}

// in Comments_Image model
public function comment()
{
return $this->belongsTo('App\Comment', 'id', 'comment_id');
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector