连接2个表laravel

时间:2016-06-06 17:56:16

标签: laravel relationships

我有两张桌子:"产品"和" productPhotos"。 每个产品都有唯一的id = Product_ID。 每个productPhoto都有一个唯一的id = ProductPhoto_ID。 在我的表productPhoto中还有照片,这在我的迁移中是这样指定的:$ table-> binary(' photo');这是用于上传图片。

在表格产品中我是ProductPhoto_ID(它是一种关系)。 但是我该如何添加照片'?

1 个答案:

答案 0 :(得分:1)

您需要为每个表创建模型。

最好对表/列名称使用laravel约定。

所以我会这样称呼他们:

产品  - ID   - 等......

照片  - ID   - product_id   - 等......

然后创建2个模型:

    class Product extends Model
    {
        protected $table = 'products';

        public function photos()
        {
          return $this->hasMany('App\Photos');
        }
    }

    class Photo extends Model
    {
        protected $table = 'photos';

        public function product()
        {
          return $this->belongsTo('App\Product','product_id');
        }    
    }

然后在你的控制器中,你可以得到这样的关系:

$ product = Product :: find($ id) - > with(' photos');

这将返回一个产品模型,其中包含一个名为photos的属性,该属性是与其相关的所有Photo模型的集合。

查看https://laravel.com/docs/5.1/eloquent-relationships

干杯