Problem/Motivation

When Simple Address fields are not required, after saving a node, the following error appears:

Notice: Trying to get property of non-object in Drupal\simpleaddress\Plugin\Field\FieldFormatter\SimpleAddressDefaultFormatter->getAddressFormatSettings() (line 68 of modules/contrib/simpleaddress/src/Plugin/Field/FieldFormatter/SimpleAddressDefaultFormatter.php).

Drupal\simpleaddress\Plugin\Field\FieldFormatter\SimpleAddressDefaultFormatter->getAddressFormatSettings(Object) (Line: 36)
Drupal\simpleaddress\Plugin\Field\FieldFormatter\SimpleAddressDefaultFormatter->viewElements(Object, 'en') (Line: 80)
Drupal\Core\Field\FormatterBase->view(Object, NULL) (Line: 259)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 303)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 246)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 203)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func(Array, Array) (Line: 379)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 195)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 572)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 144)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 62)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 98)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 77)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 50)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 626)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Proposed resolution

This appears to be caused by the assumption that the country field will always be set. This might not the case if the Simple Address field is not required on the content type. This is just a warning, so the fix could just be to check to see if $items[0] is set.

Comments

mirie created an issue. See original summary.

mirie’s picture

Issue summary: View changes
mirie’s picture

StatusFileSize
new0 bytes

Attaching patch with this isset() check

mirie’s picture

StatusFileSize
new821 bytes

Lol, my previous patch was empty. Sorry about that. Here's the actual patch!

  • dakala committed 3fbc213 on 8.x-1.x
    Issue #2714429 - mirie: Apply patch
    
dakala’s picture

Status: Active » Fixed

@mirie; Yeah, looks good. Thanks

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.