HasManyThrough关系,Laravel 5.6,5.7

时间:2018-12-28 00:34:41

标签: mysql database laravel eloquent

我有三个表格:商品,图片和商品图片

我要输出$ article-> file

在laravel 5.0中非常简单

$ article-> article_images-> file;

但是现在他们删除了此功能,我也在vuejs中使用了输出。

文章

id-整数

名称-字符串

article_images

id-整数

article_id-整数

image_id-整数

图片

id-整数

文件-字符串

3 个答案:

答案 0 :(得分:0)

您需要定义article和article_images之间的关系

public functon images() {
   return $this->belongsTo('...\ArticleImage');
}

之后,您可以返回具有关联关系的文章

return Article::find($id)->with('images');

请尝试一下,让我知道它如何工作:)

答案 1 :(得分:0)

首先,您必须在您的模型中添加关系, 因此,在这种情况下,您的文章有很多图像,一个图像属于许多文章,因此您应该删除article_images并在您的模型(文章和图像)中添加此功能

// In Article model 
public function Images()
{
   return $this->belongsToMany('App\Image');
}


// In Images model 
public function Article()
{
   return $this->belongsToMany('App\Article');
}

之后,您可以使用以下代码获取首选文章的所有图像 例如:

$images = Article::first()->images();

答案 2 :(得分:0)

否:HasManyThrough

但是:othersToMany

解决了问题!

阅读以下代码:


    class Article extends Model
    {
        public function images()
        {
            return $this->belongsToMany('App\Image','article_images','image_id','article_id');
        }

    }