0

PHP Activerecordを使用して、次のコードでレコードが存在するかどうかをテストしようとしています:

class User extends ActiveRecord\Model {

    public function user_exists() {
        $user = User::find_by_email($this->email);
        if ( $user ) {
            return true;
        } else {
            return false;
        }
    }

}

$user = new User();
$user->email = "test@email.com";

if ( $user->user_exists() ) {
    echo "user exists";
} else {
    echo "no user";
}

何らかの理由で、「未定義のメソッドへの呼び出し: find_by_email」エラーが発生します。私は何を間違っていますか?

4

1 に答える 1

1

existsメソッドを試してください:

User::exists(array('email' => $this->email));

存在を確認するだけでデータをフェッチしないため、どちらの方が高速です。

またはさらに良いです。モデルの検証を使用します。

http://www.phpactiverecord.org/projects/main/wiki/Validations#validates_uniqueness_of

于 2013-07-09T22:55:59.897 に答える