function aliasList($cateAlias = null, $contentAlias = null, $limit = 10) { $pagination = new MPagination(); $pagination->setPageSize($limit); $pagination->setCurrentPage(0); if (is_null($cateAlias)) { return Content::model()->findAll('delete_time is null ', array(), $pagination, ' content_id desc '); } if (!($cate = Cate::model()->find('alias = ?', array($cateAlias)))) { return; } if (is_null($contentAlias)) { return Content::model()->findAll('cid = :cid and delete_time is null ', array(':cid' => $cate->cid), $pagination, ' content_id desc '); } return Content::model()->findAll('alias = :alias and cid = :cid ', array(':alias' => $contentAlias, ':cid' => $cate->cid), $pagination, ' content_id desc '); }
/** * @param $condition * @param array $params * @param MPagination $pagination * @param $order * @return array */ function findAll($condition, $params = array(), $pagination = null, $order = '') { $sqlOrder = $order ? 'order by ' . $order : ''; if ($condition) { $condition = ' and ' . $condition; } $sqlLimit = ''; if ($pagination) { // set count $sql = 'select count(1) from ' . static::$table . ' where 1 ' . $condition; $prepare = new MDbPrepare(self::getDb()->pdo->prepare($sql)); if (!($cnt = $prepare->queryScala($params))) { return null; } $pagination->setItemCount($cnt); $sqlLimit = ' limit ' . $pagination->getOffset() . ', ' . $pagination->getLimit() . ' '; } $sql = 'select * from ' . static::$table . ' where 1 ' . $condition . ' ' . $sqlOrder . ' ' . $sqlLimit; $prepare = new MDbPrepare(self::getDb()->pdo->prepare($sql)); if (!($list = $prepare->findAll($params))) { return null; } foreach ($list as $key => $one) { $model = self::model(); $model->isNew = false; $model->setAttributes($one); $keyField = $model->primaryKeyField; $model->primaryKey = $model->{$keyField}; $list[$key] = $model; } return $list; }