Это демо приложение создано на основе Symfony фреймворка для того, чтобы показать рекомендованный способ разработки Symfony приложений.
Для дополнительной информации обратитесь к Symfony документации.
Нажмите на эту кнопку для просмотра исходного кода Контроллера и шаблона, которые использовались для отображения этой страницы.
/**
* @Route("/search", methods="GET", name="blog_search")
*/
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(), ENT_COMPAT | ENT_HTML5),
'date' => $post->getPublishedAt()->format('M d, Y'),
'author' => htmlspecialchars($post->getAuthor()->getFullName(), ENT_COMPAT | ENT_HTML5),
'summary' => htmlspecialchars($post->getSummary(), ENT_COMPAT | ENT_HTML5),
'url' => $this->generateUrl('blog_post', ['slug' => $post->getSlug()]),
];
}
return $this->json($results);
}
{% extends 'base.html.twig' %}
{% block javascripts %}
{{ parent() }}
{{ encore_entry_script_tags('search') }}
{% 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 %}