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()
我尝试了论坛上所有的答案,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()