3

yii を使用してデータベース テーブルにレコードが既に存在するかどうかを確認しようとしています。ドキュメントを読むと、findByAttributes()またはfind()を使用して記録を見つける代わりに使用できるメソッドexists()があることがわかります。レコードを取得する必要がなく、レコードが存在するかどうかを確認するだけなので、使用されるメモリが少なくなるという利点があります。

このメソッドを次のように実装しようとすると:

    if (UserRsvp::model()->exists(array("user_id"=>$userId))) {
        echo 'Exists';
    } else {
        echo "Doesn't exist";
    }

次のエラーが表示されます: *CException : Property "CDbCriteria.user_id" is not defined.*

findByAttributes の方法で実行しようとすると、正常に動作します (ただし、効率を向上させるために exists() を使用したい)

if(UserRsvp::model()->findByAttributes(array("user_id"=>$userId))) {

  echo 'Exists';
} else {
  echo "Doesn't exist";
}

exists() メソッドに何か問題がありますか?

4

1 に答える 1

20

これを使って:

UserRsvp::model()->exists('user_id = :user_id', array(":user_id"=>$userId));
于 2013-09-25T06:56:22.210 に答える