[英]Laravel 5.1 Eloquent relation Eager loading not working
我已经尝试了论坛上所有的答案,没有一个对我有帮助。
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);
调用return $this->response->withItem(**$users**, new UserTransformer);
应用程序\\变压器\\ 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;
收到以下错误$apiKey = $resource->apikey->key;
试图获取非对象的属性
我不明白我要去哪里错了,请提出建议。
谢谢,
ķ
您应该尝试仅传递单个模型而不是用户。
查询时可以使用first()
或find()
获得单个结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.