Dit is een voorbeeld applicatie, gemaakt met het Symfony framework, die u een indruk geeft van de aanbevolen manier om een Symfony applicatie te ontwikkelen.
Voor meer informatie bekijk de Symfony documentatie.
Klik op deze knop om de broncode van de Controller en template, die gebruikt zijn bij het weergeven van deze pagina, te bekijken.
/**
* @Route("/search", name="blog_search")
* @Method("GET")
*/
public function search(Request $request, PostRepository $posts): Response
{
if (!$request->isXmlHttpRequest()) {
return $this->render('blog/search.html.twig');
}
$query = $request->query->get('q', '');
$limit = $request->query->get('l', 10);
$foundPosts = $posts->findBySearchQuery($query, $limit);
$results = [];
foreach ($foundPosts as $post) {
$results[] = [
'title' => htmlspecialchars($post->getTitle()),
'date' => $post->getPublishedAt()->format('M d, Y'),
'author' => htmlspecialchars($post->getAuthor()->getFullName()),
'summary' => htmlspecialchars($post->getSummary()),
'url' => $this->generateUrl('blog_post', ['slug' => $post->getSlug()]),
];
}
return $this->json($results);
}
{% extends 'base.html.twig' %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('build/js/search.js') }}"></script>
{% endblock %}
{% block body_id 'blog_search' %}
{% block main %}
<form action="{{ path('blog_search') }}" method="get">
<div class="form-group">
<input name="q"
class="form-control search-field"
placeholder="{{ 'post.search_for'|trans }}"
autocomplete="off"
autofocus
data-no-results-message="{{ 'post.search_no_results'|trans }}"
>
</div>
</form>
<div id="results">
</div>
{% endblock %}
{% block sidebar %}
{{ parent() }}
{{ show_source_code(_self) }}
{% endblock %}