public function deleteAction() { if (!$this->request->isDelete()) { $this->response->setStatusCode('405', 'Method Not Allowed'); $this->response->setContentType('application/json', 'utf-8'); return $this->response->setJsonContent(array('errors' => array(array('code' => 405, 'message' => 'ERR_POST_REQUEST_METHOD_NOT_ALLOW')))); } $id = $this->dispatcher->getParam('id'); $category = Models\Category::findFirst($id); try { $category->delete(); } catch (\Exception $e) { return $this->showExceptionAsJson($e, $category->getMessages()); } $this->response->setContentType('application/json', 'utf-8'); return $this->response->setJsonContent($category); }
public static function getOrCreate($categoryName) { $categoryDAO = new Category(); $category = $categoryDAO->findFirst("categoryName='{$categoryName}'"); $pinyin = new Pinyin(); if (!$category) { $category = new Category(); $category->categoryName = $categoryName; $category->initial = substr($pinyin->transformUcwords($category->categoryName), 0, 1); $category->save(); } return $category; }
public function createEntry($data) { $textData = isset($data['text']) ? $data['text'] : array(); $synonymies = isset($data['synonymies']) ? $data['synonymies'] : array(); $synonymies = !$synonymies && isset($data['keywords']) ? $data['keywords'] : $synonymies; $categoryData = isset($data['categories']) ? $data['categories'] : array(); $categoryNamesData = isset($data['categoryNames']) ? $data['categoryNames'] : array(); $entry = self::findFirst("title='{$data['title']}'"); $newEntry = false; if (!$entry) { $entry = $this; $newEntry = true; } if ($textData) { unset($data['text']); $text = new EntryTexts(); $text->assign($textData); $entry->text = $text; } $keywords = array(); if ($synonymies) { $synonymiesArray = is_array($synonymies) ? $synonymies : explode(',', $synonymies); $mainKeyword = new EntryKeywords(); $mainKeyword->keyword = $data['title']; $keywords[] = $mainKeyword; foreach ($synonymiesArray as $_keyword) { $keyword = new EntryKeywords(); $keyword->keyword = $_keyword; $keywords[] = $keyword; } } $entry->keywords = $keywords; $categories = array(); if ($categoryData) { unset($data['categories']); foreach ($categoryData as $categoryId) { $category = Category::findFirst($categoryId); if ($category) { $categories[] = $category; } } } // 通过分类名指定分类 if ($categoryNamesData) { unset($data['categoryNames']); foreach ($categoryNamesData as $_categoryName) { $categories[] = Category::getOrCreate($_categoryName); } } $entry->categories = $categories; if ($newEntry) { $entry->assign($data); } $pinyin = new Pinyin(); $entry->initial = substr($pinyin->transformUcwords($entry->title), 0, 1); if (!$entry->save()) { throw new RuntimeException('Create post failed'); } return $entry; }