我将一组存档的模型放入每个模型的单独存档表中。我已经定义了从模型到它的档案的关系,如下所示......
public function archives()
{
return $this->hasMany(ArchivedModel::class, 'original_id', 'id')
->orderBy('date_from', 'desc');
}
以上作品。我用......获得了预期的结果。
$model = Model::with('archives')->findOrFail(1)->first();
我还想定义一个与最新档案的关系 - 这将始终存在,我尝试过以下但没有运气......
public function mostRecentArchive()
{
return $this->hasOne(ArchivedModel::class, 'original_id', 'id')
->orderBy('date_from', 'desc')
->first();
}
......我得到了
抛出BadMethodCallException并显示消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: addEagerConstraints()”
所以我的问题 -
如何定义与最新档案的关系?
任何指针都会受到欢迎!
答案 0 :(得分:1)
public function mostRecentArchive()
{
return $this->hasOne(ArchivedModel::class, 'original_id', 'id')
->orderBy('date_from', 'desc');
}
无需编写 - > first();在关系中
答案 1 :(得分:1)
远程第一()
public function mostRecentArchive()
{
return $this->hasOne(ArchivedModel::class, 'original_id', 'id')
->orderBy('date_from', 'desc')
}