I have added no results behaviour text to a view called Events which is a page. This template I am using has a twig called views-view--events--page_1.twig. I want to add the no results text to this twig template, but I can't find any way to do it. How can this be done?
1 Answer
It's always useful to look at the original template (views-view.html.twig). The documentation list the available variables, which in this case are the following.
- attributes: Remaining HTML attributes for the element
- css_name: A css-safe version of the view name
- css_class: The user-specified classes names, if any
- header: The optional header
- footer: The optional footer
- rows: The results of the view query, if any
- empty: The content to display if there are no rows
- pager: The optional pager next/prev links to display
- exposed: Exposed widget form/info to display
- feed_icons: Optional feed icons to display
- more: An optional link to the next page of results
- title: Title of the view, only used when displaying in the admin preview
- title_prefix: Additional output populated by modules, intended to be displayed in front of the view title
- title_suffix: Additional output populated by modules, intended to be displayed after the view title
- attachment_before: An optional attachment view to be displayed before the view content
- attachment_after: An optional attachment view to be displayed after the view content
- dom_id: Unique id for every view being printed to give unique class for Javascript
{{ empty }}
appears to be what you're after.
views-view.html.twig
in core and compare it with your template. You may be missing a lot more than just the empty case. Also, twig overrides end in.html.twig
. See Views template files for the correct way to name your views templates.