Я новичок в 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();
Никто из них не работает!
Что я должен делать?
Правильно ли вы используете пространство имен? Например, «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');
}
Других решений пока нет …