/** * 可以指定条件筛选范本来查询实体; * @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); } }