/** * Создает новую новость * * @param object $app Silex\Application * @param object $req Symfony\Component\HttpFoundation\Request * @return object Symfony\Component\HttpFoundation\JsonResponse * */ public function createNewPostAction(Application $app, Request $req) { $model = new PostModel(); $model->title = $app->escape($req->get('title')); $model->img = $app->escape($req->get('img')); $model->description = $app->escape($req->get('description')); $model->url = UrlService::makeUrlFromSting($model->title); $model->text = $app->escape($req->get('text')); if ($model->isValid($app['validator'])) { if ($model->save()) { return new JsonResponse(['success' => true, 'message' => 'Новость успешно добавлена!'], JsonResponse::HTTP_CREATED); } } return new JsonResponse(['success' => false, 'message' => $model->getError()], JsonResponse::HTTP_OK); }
/** * Отдает html страницу конкретной новости или * бросает исключение с кодом, если новость не найдена * * @param object $app Silex\Application * @param string $url * @return string|object html при успехе или * Symfony\Component\HttpKernel\Exception\HttpException * при ошибке */ public function showPostAction(Application $app, $url) { $post = PostModel::find_by_url($url); if (!$post) { return $app->abort(404); } return $app['twig']->render('post.twig', ['post' => $post]); }