Laravel Eloquent with()-> returning null
19,627
You have this:
$product = Product::with('images', 'brand')
->select($fields)
->where('display', 1)
->find($id);
You are getting null
for brand
and it could be because you have some specific fields and most probably you didn't select the foreing_key
from the products
table that creates the relationship with Brand
, so if your products
table contains the foreign_key
(probably brand_id
) of brand
table then you have to select that foreign_key
from the products
table too. So, just add that foreign_key/brand_id
in the $fields
variable. Without the relation builder key (FK
) the Brand
won't be loaded.
Author by
Jazzy
Updated on July 24, 2022Comments
-
Jazzy almost 2 years
I am trying to use Eloquent to get a specific product that has a
brand_id
column that maps to abrands
table, thebrand
array is coming back empty.Is there anything obvious here that needs to be changed?
$product = Product::with('images')->with('brand')->select($fields)->where('display', '=', 1)->find($id);
//Product model
class Product extends Eloquent { ... public function brand() { return $this->belongsTo('Brand'); }
//Brand model
class Brand extends Eloquent { ... public function products() { return $this->hasMany('Product'); }