hasOne关系不在laravel中工作

时间:2017-12-10 17:32:57

标签: laravel relationship laravel-eloquent

您好我想首先在两个表之间建立关系表是产品,第二个是productimages

ProductController.php

public function product(){
     $products = Product::all();
     dd($products->images);
}

Product.php(模态)

class Product extends Model
{
      public $timestamps = false;
      //

      public function images()
      {
         return $this->hasOne(ProductImage::class);
      }
 }

ProductImage.php(模型)

class ProductImage extends Model
{
    public function product(){
       return $this->belongsTo(Product::class);
    }
}

当我使用这种方法$products = Product::find(1);工作时,我需要所有人。

由于

2 个答案:

答案 0 :(得分:0)

当您执行$products->images时,您正试图访问收集的财产。

使用with()方法预加载所有产品及其图片:

$products = Product::with('images')->get();

然后您就可以获得每种产品的图像并避免出现N + 1问题:

@foreach ($products as $product)
    // Access $product->image here
@endforeach 

答案 1 :(得分:0)

Product::with('images')->get();