Laravel 5.1 Eloquent 关系预加载不起作用

Laravel 5.1 Eloquent relation Eager loading not working

我尝试了论坛上所有的答案,none 帮助了我。

App\User.php 模型定义 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\Transformer\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;

收到以下错误

Trying to get property of non-object

我不明白我哪里错了请指点。

谢谢,

K

您应该尝试只传递一个模型而不是用户。
查询单条结果时可以使用first()find()