Upgrade Your Drupal Skills
We trained 1,000+ Drupal Developers over the last decade.
See Advanced Courses NAH, I know EnoughSet Required and Optional Address Inputs for Address Field in Drupal 8
This one is dedicated to all my fellow Drupalers. There’s no better exercise for a brain than reading ancient chinese poetry taming Drupal 8. When I’m bored, I turn to Drupal!
Recently I got my Drupal 8 Address module updated and it turned out that from now on street address and postal code inputs are required by default. But my requirement is to have only a “city” input required. How do I do that? Well it’s not that easy as you might think (form alter / widget alter won’t help you there) and there's no UI for that (as of now). After spending some time deep in the sh.. code, I’ve figured out that ALL you need is to just simply create an EventSubscriber and declare your required fields there. Sssssimple!
Okay, enough talking, let me show it to you:
Step 1
Create a file with the following path: your_module/src/EventSubscriber/AddressFormatSubscriber.php
Step 2
Put this code inside a previously created file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Note line 18, this is where we declare our required fields.
Step 3
Create, or alter already existing, file your_modiule.services.yml
Step 4
Declare your newly created AddressFormatSubscriber service in your_modiule.services.yml
Step 5
Coffee time ☕️ - clear your caches!
About Drupal Sun
Drupal Sun is an Evolving Web project. It allows you to:
- Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
- Facet based on tags, author, or feed
- Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
- View the entire article text inline, or in the context of the site where it was created
See the blog post at Evolving Web