今日試してみる前にORMを使ったことがなかったので、解決方法がわからないという最初の問題に遭遇しました(ORMが実際にどのように機能するかを理解していないため)。
言語、コード、ピボットテーブルCodes_Languagesの3つのテーブルがあるとします。これらはすべて、モデル内で適切に定義された関係を持っています。
さて、言語のすべての名前をエコーするために、私は次のように行くことができます:
$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;
}
しかし、これを行う必要がある場合はどうでしょうか。各言語で最新の5つのコード(code.time_postedでDESCによって順序付けられている)を取得しますか?
$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から変換しましたが、ドキュメントが不足しているようで、必要なことを行う方法を見つけることができませんでした。
どんなガイダンスも素晴らしいでしょう。ありがとう。