2012-01-25 19 views
1

私は、行がない場合は、プレーヤーIDで行を返さなければなりません。 これを行う最良の方法はありません。PropfelをSymfony 1.4で使用

class PlayerRafPeer extends BasePlayerRafPeer { 

    /** 
    * Returns a PlayerRaf object by playerId. 
    * @param int $player_id 
    * @param PDO $con 
    * @return PlayerRaf 
    */ 
    public static function retrieveByPlayerId($player_id, $con = null) 
    { 
    if ($con === null) { 
     $con = Propel::getConnection(self::DATABASE_NAME); 
    } 

    $criteria = new Criteria(); 
    $criteria->add(self::PLAYER_ID, $player_id); 
    $v = self::doSelectOne($criteria, $con); 

    if (!$v) { 
     $player = new PlayerRaf(); 
     $player->setPlayerId($player_id) 
      ->setEmailCount(0) 
      ->setDate(date("Y-m-d"), time()); 
     self::doInsert($player, $con); 
     return $player; 
    } 
    return $v; 
    } 

答えて

1

Peerクラスにロジックを追加するのではなく、ActiveQuery APIを使用してください。あなたは読むことができます:http://www.propelorm.org/reference/model-criteria.htmlhttp://propel.posterous.com/propel-query-by-example

あなたの場合、このセクションはあなたに役立ちます:http://www.propelorm.org/reference/model-criteria.html#creating_an_object_based_on_a_query

次に、あなたが書くことができます:

<?php 

$player = PlayerRafQuery::create() 
      ->filterById($id) 
      ->findOneOrCreate(); 
関連する問題