gpt4 book ai didi

php - 如何将 Laravel 分页与模型关系一起使用?

转载 作者:行者123 更新时间:2023-12-03 21:50:08 24 4
gpt4 key购买 nike

我有类别和项目表。每个项目只属于一个类别,每个类别有很多项目。因此,在类别模型中我定义了这种关系:

public function items()
{ return $this->hasMany('Item', 'catid'); }

然后我以这种方式检索类别的数据:

$category = Category::find($id);
return View::make('admin.categories.catdetails')->with('category', $category);

在我看来,我可以遍历数据:

 @foreach ($category->items as $item)
<tr>
<td> {{ $item->name }} </td>
<td> {{number_format($item->price, 2, '.', '')}} </td>
</tr>
@endforeach

但这会导致页面上的所有项目。如果一页有这么多项目,如何使用 laravel 分页?我该如何使用

::paginate() // in controller or model
->links() // in view

到目前为止,它会抛出很多错误,我无法弄清楚。提前致谢。

最佳答案

您可以在关系对象上调用 paginate(),您可以通过 ->items()(不是 ->items)访问它

$items = $category->items()->paginate(10);

return View::make('admin.categories.catdetails')
->with('category', $category)
->with('items', $items);

那么在你看来:

@foreach ($items as $item)

和:

$items->links()

您可以使用属性访问器来实现您想要的。在您的模型中:

public function getPaginatedItemsAttribute(){
return $this->items()->paginate(10);
}

然后你像这样使用它:

@foreach ($category->paginatedItems as $item)

和:

$category->paginatedItems->links()

关于php - 如何将 Laravel 分页与模型关系一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28528489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com