コード例 #1
0
 /**
  * 可以指定条件筛选范本来查询实体;
  * @param Object $entity 需要查询的实体对象
  * @param $example 指定条件样本
  * @param array<Order> $orders  指定排序规则; 可以为 Order对像的数组;
  * @param DataPager $dataPager 数据分页器
  * @param array<Translater> $translaters 数据转义器
  * @return array<Entity>;
  */
 public function findByExample($entity, $example, $order = null, $dataPager = null, $translaters = null)
 {
     if (is_object($entity)) {
         $config = $entity->getConfig();
         $columns = $config['columns'];
         $criteria = new CriteriaImpl($entity);
         $criteria->setFileds($entity->getFileds());
         //瑕佹煡璇㈢殑瀛楁
         $criteria->setExample($example);
         //set order
         if (is_object($order)) {
             $criteria->addOrder($order);
         } else {
             if (is_array($order)) {
                 foreach ($order as $orderItem) {
                     $criteria->addOrder($orderItem);
                 }
             }
         }
         if (is_object($translaters)) {
             $criteria->addTranslater($translaters);
         } else {
             if (is_array($translaters)) {
                 foreach ($translaters as $translater) {
                     $criteria->addTranslater($translater);
                 }
             }
         }
         if ($dataPager) {
             $criteria->setDataPager($dataPager);
         }
         return $this->findAll($criteria);
     }
 }