а зачем так переключать запросы в контроллере?
#[Route('', name: 'index', methods: ['GET'])]
public function index(PostService $postService, Request $request, PaginatorInterface $paginator): Response
{
$posts = $postService->findAllFiltered(
$request->query->getInt('category'),
$request->query->getInt('tag')
);
$posts = $paginator->paginate($posts, $request->query->getInt('page', 1));
return $this->render('admin/blog/post/index.html.twig', compact('posts'));
}
class PostService
{
public function __construct(
private PostRepository $postRepository,
private CategoryRepository $categoryRepository,
private TagRepository $tagRepository,
) {
}
public function findAllFiltered(?int $category, ?int $tag): mixed
{
if ($category) {
$category = $this->categoryRepository->find($category);
$posts = $category ? $category->getPosts() : $this->postRepository->findAllOrderedByNewest();
} elseif ($tag) {
$tag = $this->tagRepository->find($tag);
$posts = $tag ? $tag->getPosts() : $this->postRepository->findAllOrderedByNewest();
} else {
$posts = $this->postRepository->findAllOrderedByNewest();
}
return $posts;
}
}
Я ж поэтому и спрашивал вопрос, может есть готовое уже сразу работающее. Думаю неужели никто не делает что-то с редактором поддерживающим markdown и нужно вручную все подключать и разбираться и в итоге какой-то костыль получится.