我正在尝试使用Eloquent来获取具有映射到brand_id
表的brands
列的特定产品,brand
数组将返回空。
这里有什么明显需要改变的吗?
$product = Product::with('images')->with('brand')->select($fields)->where('display', '=', 1)->find($id);
//产品型号
class Product extends Eloquent {
...
public function brand()
{
return $this->belongsTo('Brand');
}
//品牌型号
class Brand extends Eloquent {
...
public function products()
{
return $this->hasMany('Product');
}
答案 0 :(得分:13)
你有这个:
$product = Product::with('images', 'brand')
->select($fields)
->where('display', 1)
->find($id);
null
您收到brand
,可能是因为您有一些特定字段,很可能您没有从foreing_key
表格中选择products
创建与Brand
的关系,因此如果您的products
表包含foreign_key
(可能是brand_id
} brand
表,那么您必须选择foreign_key
也来自products
表。因此,只需在foreign_key/brand_id
变量中添加$fields
即可。如果没有关系构建器密钥(FK
),则不会加载Brand
。