I am trying to use Eloquent to get a specific product that has a brand_id
column that maps to a brands
table, the brand
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');
}
You have this:
You are getting
null
forbrand
and it could be because you have some specific fields and most probably you didn't select theforeing_key
from theproducts
table that creates the relationship withBrand
, so if yourproducts
table contains theforeign_key
(probablybrand_id
) ofbrand
table then you have to select thatforeign_key
from theproducts
table too. So, just add thatforeign_key/brand_id
in the$fields
variable. Without the relation builder key (FK
) theBrand
won't be loaded.