コード例 #1
0
 /**
  * @param $pk
  * @param null | array | EMongoCriteria $criteria
  * @return $this[]
  */
 public function findAllByPk($pk, $criteria = null)
 {
     return parent::findAllByPk(MtMongoCriteria::toMongoId($pk), $criteria);
 }
コード例 #2
0
 public static function toMongoId($id)
 {
     return MtMongoCriteria::toMongoId($id);
 }
コード例 #3
0
 private function _prepareCondition($condition, $attribute, $type)
 {
     if (is_string($type) and function_exists($fnName = strtolower($type))) {
         $prepare = function ($condition) use($fnName) {
             if (is_scalar($condition) and !is_bool($condition)) {
                 $condition = $fnName($condition);
             }
             return $condition;
         };
         $condition = is_array($condition) ? array_map($prepare, $condition) : $prepare($condition);
     } elseif ($type == 'MongoId') {
         $condition = MtMongoCriteria::toMongoId($condition);
     } elseif (is_array($type) and $field = $this->getField($attribute)) {
         $condition = is_array($condition) ? array_map([$field, 'prepareCondition'], $condition) : $field->prepareCondition($condition);
     }
     return $condition;
 }