【发布时间】:2020-04-13 14:50:41
【问题描述】:
我有一个 Link 模型,每个链接都有一个所有者(由 DB 中的 ownerId 表示,它是 User 表的外键)。
这是链接模型:
<?php namespace App\Http\Models;
use Illuminate\Database\Eloquent\Model;
class Link extends Model {
protected $table = "Link";
// ...
// Relationships
public function owner()
{
return $this->belongsTo(User::class, 'ownerId', 'id');
}
}
当我在我的 LinkController 中使用 $data = Link::find($linkId)->toJson(); 时,所有者包括在内,但在 JSON 数据中为空。我也试过$data = Link::with('owner')->find($linkId)->toJson();和$data = Link::find($linkId)->load('owner')->toJson();
当我使用$data = Link::find($linkId)->owner->toJson(); 时,我得到了用户数据。我的代码中是否缺少某些内容?
有没有办法在链接对象中加载所有者并通过 JSON 获取它而无需额外的请求/步骤?
【问题讨论】:
-
你试过
append吗? laravel.com/docs/5.7/… -
是的,我试过了,但它不起作用。奇怪的是我可以使用
Link::find($linkId)->owner获取所有者,但不能使用其他方法。
标签: php laravel eloquent lumen eloquent-relationship