Laravel Eloquent with() - >返回null

时间:2014-06-09 23:04:42

标签: php mysql orm laravel eloquent

我正在尝试使用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');
}

1 个答案:

答案 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