Problem/Motivation
On 8.8.x. Standard, Install Layout Builder and enable Layout Builder and override on Basic page.
1. Create a new Basic page.
2. Override the layout.
3. Click "Add Block" , add "Name" under "User fields"
4. Save the layout
The website encountered an unexpected error. Please try again later.
Stack trace:
Error: Call to a member function isDisplayConfigurable() on null in Drupal\layout_builder\QuickEditIntegration->supportQuickEditOnComponent() (line 316 of /Users/john/code/drupal/core/modules/layout_builder/src/QuickEditIntegration.php) #0 /Users/john/code/drupal/core/modules/layout_builder/src/QuickEditIntegration.php(140): Drupal\layout_builder\QuickEditIntegration->supportQuickEditOnComponent(Array, Object(Drupal\node\Entity\Node)) #1 /Users/john/code/drupal/core/modules/layout_builder/layout_builder.module(169): Drupal\layout_builder\QuickEditIntegration->entityViewAlter(Array, Object(Drupal\node\Entity\Node), Object(Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay)) #2 /Users/john/code/drupal/core/lib/Drupal/Core/Extension/ModuleHandler.php(539): layout_builder_entity_view_alter(Array, Object(Drupal\node\Entity\Node), Object(Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay)) #3 /Users/john/code/drupal/core/lib/Drupal/Core/Entity/EntityViewBuilder.php(308): Drupal\Core\Extension\ModuleHandler->alter('node_view', Array, Object(Drupal\node\Entity\Node), Object(Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay)) #4 /Users/john/code/drupal/core/lib/Drupal/Core/Entity/EntityViewBuilder.php(242): Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) #5 [internal function]: Drupal\Core\Entity\EntityViewBuilder->build(Array) #6 /Users/john/code/drupal/core/lib/Drupal/Core/Render/Renderer.php(378): call_user_func(Array, Array) #7 /Users/john/code/drupal/core/lib/Drupal/Core/Render/Renderer.php(195): Drupal\Core\Render\Renderer->doRender(Array, false) #8 /Users/john/code/drupal/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(226): Drupal\Core\Render\Renderer->render(Array, false) #9 /Users/john/code/drupal/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() #10 /Users/john/code/drupal/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(227): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #11 /Users/john/code/drupal/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(117): Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch)) #12 /Users/john/code/drupal/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch)) #13 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #14 /Users/john/code/drupal/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) #15 /Users/john/code/drupal/vendor/symfony/http-kernel/HttpKernel.php(156): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent)) #16 /Users/john/code/drupal/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #17 /Users/john/code/drupal/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #18 /Users/john/code/drupal/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #19 /Users/john/code/drupal/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #20 /Users/john/code/drupal/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #21 /Users/john/code/drupal/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #22 /Users/john/code/drupal/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #23 /Users/john/code/drupal/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #24 /Users/john/code/drupal/core/lib/Drupal/Core/DrupalKernel.php(693): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #25 /Users/john/code/drupal/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #26 /Users/john/code/drupal/.ht.router.php(65): require('/Users/john/cod...') #27 {main}.
Proposed resolution
Remaining tasks
User interface changes
API changes
Data model changes
Release notes snippet
Comments
Comment #2
tim.plunkettWow, that's a pretty clear oversight. Thankfully it's an easy fix.
This needs tests.
From what I can see this only currently affects user fields because of the ability to add fields representing the currently logged-in user.
Comment #3
phenaproximaAssigning to myself for tests.
Comment #4
phenaproximaAnd, done. Fail patch is the interdiff.
Comment #5
johnwebdev commentednewline.
Other than that, looks great. I've tested the patch locally (as I was writing a test myself, but I'm way to slow!)
Comment #6
phenaproximaAdded the newline. Thanks for pointing that out! :)
Comment #7
johnwebdev commentedComment #8
tim.plunkettTwo more nits, sorry!
Remove the block placement and do
drupalGet('node/1/layout')pleaseI don't think this is necessary here, let's just remove it.
Comment #9
phenaproximaDone!
Comment #10
tim.plunkettThanks!
Comment #11
tim.plunkettAdding credit
Comment #15
xjmCommitted to 8.8.x and cherry-picked to 8.7.x. Thanks!
Comment #16
johnwebdev commented