Laravel 数组键存在并包含数据,但在访问它时不返回任何内容



>我在产品和照片模型之间有关系。

产品型号 :

use IlluminateDatabaseEloquentModel;
use AppProduct;
use AppPhoto;
class Product extends Model
{
public function photos() {
return $this->hasMany(Photo::class, 'product_id');
}
}

照片模特 :

use IlluminateDatabaseEloquentModel;
use AppPhoto;
use AppProduct;
class Photo extends Model
{
public function product() {
return $this->belongsTo(Product::class);
}
}

当我得到这样的产品时:

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

输出:

{
"id":1,
"title":"some product",
"photos":[
{
"id":1,
"path":"a photo 1 path"
},
{
"id":2,
"path":"a photo 2 path"
},
{
"id":3,
"path":"a photo 3 path"
}
]
}

当我尝试访问时的问题$product->photos我什么也得不到。 就像一个空键。

如果我尝试dd($product->photos),我会得到null

数组键存在并包含数据,为什么在访问它时,它什么都不返回?

我想出了问题所在。 这是一个冲突

我在products table有一个名为照片的列,它与关系名称相同:

public function photos() { // this photos name
return $this->hasMany(Photo::class, 'product_id');
}

因此,当我尝试访问照片时,它调用了">照片"列而不是">关系"名称,并且该列是空的,这就是它总是不返回任何内容的原因。

谢谢。

最新更新