Laravel 5.1雄辩关系急切加载不工作


Laravel 5.1 Eloquent relation Eager loading not working

我试了论坛上所有的答案,没有一个帮助我。

App'User.php Model定义了hasOne关系

public function apikey()
{
    return $this->hasOne('App'ApiKey', 'user_id', 'user_id');
}

App'ApiKey.php模型定义反向关系

protected function user()
{
    return $this->belongsTo('App'User','user_id','user_id');
}

现在我有了一个变换函数从控制器return $this->response->withItem(**$users**, new UserTransformer);调用

变压器' App ' UserTransformer.php

public function transform($resource) //$resource is a users object
{
    $user_id = (int) $resource->user_id;
    $apiKey = $resource->apikey->key;
    return [
        'user_id' => $user_id,
        'apikey' => $apiKey
    ];
}

我得到以下错误在$apiKey = $resource->apikey->key;

尝试获取非对象的属性

我不明白我哪里做错了,请建议。

谢谢,K

您应该尝试传递单个模型而不是用户。

查询时,可以使用first()find()查询单个结果