api/src/Topxia/Api/Resource/Articles.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Resource;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Common\ArrayToolkit;
class Articles extends BaseResource
{
public function get(Application $app, Request $request)
{
$conditions = $request->query->all();
$start = $request->query->get('start', 0);
$limit = $request->query->get('limit', 20);
$sort = $request->query->get('sort', 'published');
if (!empty($conditions['categoryId'])) {
$conditions['categoryIds'] = $this->getArticleCategoryService()->findCategoryTreeIds($conditions['categoryId']);
unset($conditions['categoryId']);
}
$conditions['status'] = 'published';
$total = $this->getArticleService()->countArticles($conditions);
$articles = $this->getArticleService()->searchArticles($conditions, $sort, $start, $limit);
$articles = $this->assemblyArticles($articles);
return $this->wrap($this->filter($articles), $total);
}
public function filter($res)
{
return $this->multicallFilter('Article', $res);
}
protected function assemblyArticles(&$articles)
{
$categoryIds = ArrayToolkit::column($articles, 'categoryId');
$categories = $this->getArticleCategoryService()->findCategoriesByIds($categoryIds);
foreach ($articles as &$article) {
if (isset($categories[$article['categoryId']])) {
$article['category'] = array(
'id' => $categories[$article['categoryId']]['id'],
'name' => $categories[$article['categoryId']]['name'],
);
} else {
$article['category'] = array();
}
}
return $articles;
}
protected function multicallFilter($name, $res)
{
foreach ($res as $key => $one) {
$res[$key] = $this->callFilter($name, $one);
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。