私はKohanaでORMを使用しており、 id = 2 のレコードを取得したいのですが、使用したとき:
$user = ORM::factory('user');
$user->find(2);
echo $user->name;
その結果、常にテーブルの最初のレコードの値が表示されますusers
が、何が問題なのですか?
コードによると、find()
引数は必要ありません:
https://github.com/kohana/orm/blob/3.2/master/classes/kohana/orm.php#L894
およびドキュメントごと:
データベースから最初のレコードをfind()
ロードするだけです。それを避けるには、次を使用します。
$user = ORM::factory('user');
$user = $user->where('id', '=', 2)->find();
echo $user->name;
私は長い間コハナを使用していないので、テストしてください。
@Tadeck が言うように、find()
引数は必要ありません。
ORM::factory
呼び出しで id を使用してみてください。
$user = ORM::factory('user', 2);
ORM オブジェクトの主キーを設定してみましたか?
保護された $_primary_key
http://kohanaframework.org/3.0/guide/api/ORM#findは、find が主キーに基づいてアイテムを見つけようとしていることを示します。