【发布时间】:2020-07-08 07:08:33
【问题描述】:
我希望我的出版物关系按“排序”列排序。
到目前为止,这是我想出的:
class Book extends Model
{
public $hasMany = [
'publications' => ['Codalia\Bookend\Models\Publication']
];
...
}
class Publication extends Model
{
public $belongsTo = [
'book' => ['Codalia\Bookend\Models\Book']
];
...
}
$book = Book::with(['publications' => function ($q){
$q->orderBy('ordering');
}])->where('id', $id)->get();
$book->publications;
但我得到一个错误:
此集合实例上不存在属性 [publications]。
为什么我要检索一个集合而不是 Book 对象?
【问题讨论】:
-
从未见过这样声明的关系,你有任何来源吗?
-
这是在模型中声明关系的经典方式。它有什么问题?
-
没什么问题,从来没有见过,我只是一直在使用他们在文档中使用的“方法”类型声明。今天学到了一些东西;)
-
好的。你可以在这里找到一些例子:octobercms.com/docs/database/relations
标签: laravel eloquent relationship