【问题标题】:Use kohana relations (has_many etc..) with kohana-pagination将 kohana 关系(has_many 等)与 kohana-pagination 一起使用
【发布时间】:2014-03-06 13:22:55
【问题描述】:

我正在使用kohana-pagination module by Morgan (guide),我想知道如何使用这个表之间的关系。

这是一个例子。

我有三个表 categoriespostscategories_post(数据透视表)

Categories has_many Posts 通过 categories_postPosts has_many Categories 通过 categories_post

很好,与 kohana 完美搭配。

现在我想使用分页模块来显示帖子列表及其类别。通常我只是 JOIN 表格然后我获取,但是对于 Kohana + 这个模块我不知道如何使用它。

我已经试过了:

$paginate = Paginate::factory(ORM::factory('post')))->columns(array('id','categories.name'))->execute();

【问题讨论】:

  • 您需要自己付出一些努力。为什么不能遵循指南/它在哪里不起作用?你想要超过帖子(然后显示它们的类别)、类别还是两者兼而有之?
  • 我想获得一个类别相同的帖子列表。我会放一个代码示例

标签: php pagination kohana kohana-orm


【解决方案1】:

请务必在初始化 Paginate 之前设置 ORM 对象,并且使用关系应该没有问题。请记住,Paginate 只是在拉取响应之前构建在您的对象之上。

如果在 ORM 类中处理关系,则与 Paginate 没有什么特别的关系。建议在列名前加上表名(例如“post.id”)。如果您在 ORM 之外加入,请务必在将 ORM 传递给 Paginate 之前这样做:

$post = ORM::factory('post')
    ->join('category')
    ->on('post.id', '=', 'category.post_id');

$paginate = Paginate::factory($post)
    ->columns(array('post.id','category.name'))
    ->execute();

我是 Paginate 的创建者和维护者,很高兴回答您的任何问题。谢谢。

【讨论】:

  • 感谢您的帮助,以及这个完美的模块 :) 所以我只需要像往常一样使用 orm(通过放入连接表等),分页系统无法直接访问到关系(has_many、has_many_through 等)(它们已经在 ORM 对象中)......也许你可以自动加入它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多