Kohana についてのこれらのすべての質問を申し訳ありません。通常、それらは無視されます。バグを見つけただけだと思います。直接関係のない 2 つのテーブルを結合しています。
$results = ORM::factory('foo')->join("bar")->on("foo.foreign_id", "=", "bar.id");
これにより、テーブル名を明示的に解決しないクエリが生成されます。
SELECT * FROM `foo` JOIN `bar` ON (`foo`.`foreign_id` = `bar`.`id`)
これにより、(phpMyAdmin で) 次のようなテーブルが得られます。
id time foreign_id blah_int id baz
4 1291851245 3 0 3 52501504
テーブル用とid
用の 2 つの列があることに注意してください。これは深刻な問題です。今、私の結果では、ループスルーすると...foo
bar
foreach ($results as $result) {
echo $result->id; // prints 3!!!
}
私の結果はfoo
オブジェクトでなければならないので、4 の ID を取得することを期待していますが、結合のために 3 になっています。これは ORM ライブラリのバグですか? クエリからの結果を制限するには、別の方法を使用する必要がありますか? bar
すべてのs id をロードしてfoo
から s をそのようにロードする 2 つの別々のクエリを実行したくはありませんが、そうしなければならないようです。