在我想今天尝试一下之前从未使用过 ORM,但我遇到了我不知道如何解决的第一个问题(由于我不了解 ORM 的真正工作原理。)
假设我有三个表:语言、代码和数据透视表 Codes_Languages。这些都在模型中正确定义了关系。
现在,为了呼应所有语言的名称,我可以这样:
$languages = ORM::factory('languages')->find_all();
foreach ($languages as $language)
{
echo $language->name, '<br />';
}
如果我想回显特定语言中的所有代码名称,我可以这样:
$language = ORM::factory('languages', 1);
foreach ($language->codes as $code)
{
echo $code->title, ' ', $code->description;
}
但是如果我需要这样做呢:检索每种语言的最新五个代码(由 DESC 在 code.time_posted 上排序)?
$languages = ORM::factory('languages')->find_all();
???$languages->codes = ORM->order_by('time_posted', 'desc')->limit(5);???
foreach ($languages as $language)
{
echo $language->name, '<br />';
foreach ($language->codes as $code)
{
echo $code->name, ' ', $code->description;
}
}
我在一些伪代码周围放置了问号,我认为这些伪代码可以解释我正在尝试做的事情。我最近从 CodeIngiter 转换过来,因为我认为 Kohana 是经过深思熟虑的,但是文档似乎缺乏,我不知道如何做我需要的。
任何指导都会很棒。谢谢。