2

私はKohanaでORMを使用しており、 id = 2 のレコードを取得したいのですが、使用したとき:

$user = ORM::factory('user');
$user->find(2);
echo $user->name;

その結果、常にテーブルの最初のレコードの値が表示されますusersが、何が問題なのですか?

4

3 に答える 3

5

コードによると、find()引数は必要ありません:

https://github.com/kohana/orm/blob/3.2/master/classes/kohana/orm.php#L894

およびドキュメントごと:

http://kohanaframework.org/3.2/guide/api/ORM#find

データベースから最初のレコードをfind()ロードするだけです。それを避けるには、次を使用します。

$user = ORM::factory('user');
$user = $user->where('id', '=', 2)->find();
echo $user->name;

私は長い間コハナを使用していないので、テストしてください。

于 2012-09-06T19:30:33.160 に答える
4

@Tadeck が言うように、find()引数は必要ありません。

ORM::factory呼び出しで id を使用してみてください。

$user = ORM::factory('user', 2);
于 2012-09-06T19:35:22.347 に答える
-1

ORM オブジェクトの主キーを設定してみましたか?

保護された $_primary_key

http://kohanaframework.org/3.0/guide/api/ORM#findは、find が主キーに基づいてアイテムを見つけようとしていることを示します。

于 2012-09-06T19:32:31.877 に答える