【问题标题】:Just started using Kohana... Have a few questions刚开始使用 Kohana...有几个问题
【发布时间】:2011-01-10 16:24:55
【问题描述】:

几天前我刚开始使用 Kohana,我有几个问题似乎无法在任何地方找到答案。

使用 ORM,如何在发送之前打包信息?如果我有一个用户模型,并且每个用户都有一个用户名、电子邮件、出生日期等......我如何在将信息发送到控制器之前打包信息(例如添加用户年龄作为属性)?

再次使用ORM,我看到如果你选择一个用户,你也可以选择所有与该用户相关的东西(即:文章,cmets等)。在将相关信息发送给控制器之前,您如何订购这些信息?

即:

<?php
$user = ORM::factory('user', $id);
$user->articles; // holds all articles belonging to a user.

// how can you order those articles dynamically?

在视图中,您如何获取有关已登录用户的信息?你是使用Auth(Auth::instance()-&gt;get_user()),还是有其他方法?

另外,如果您知道有关 Kohana 的任何其他提示/建议/qwerk,请写一两行,您可能会回答我未来的问题。

谢谢。

编辑: 另一个问题。使用 ORM,我希望能够加载用户发表评论的所有文章。

cmets 表

comment_id
user_id
article_id
etc....

使用 ORM,我可以访问用户发布的所有文章,但我如何才能访问用户评论过的所有文章?

谢谢

【问题讨论】:

  • 我没有使用 ORM,但我很乐意回答任何其他问题。
  • 如果我可能会问,你为什么不使用 ORM?你觉得有什么更好的吗?
  • 现在,我手头没有任何其他问题。如果您有任何您认为我应该知道的想要分享的内容,我将不胜感激。
  • 抱歉,ORM 非常适合快速查询和移植到新数据库的能力。我仍然在手动进行查询。您使用的是 Kohana 2.* 还是 3?
  • 我刚切换到 3。

标签: php kohana


【解决方案1】:

如果您使用的是 Kohana v3,您可以像这样订购记录:

$articles = ORM::factory('user', $id)->articles
                                     ->order_by('date', 'DESC')
                                     ->find_all();

如果您使用的是 Kohana v2,则可以使用以下方法实现相同的目的:

$articles = ORM::factory('user', $id)->orderby('date', 'DESC')
                                     ->articles;

您通过Auth::instance()-&gt;get_user() 访问用户记录是正确的(如果您使用的是 ORM Auth 驱动程序)

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多