- π©πͺGermany Anybody Porta Westfalica
Could someone please check if that still happens?
As this should work with all core modules, we should set up a dedicated automated test with both modules enabled, if this is still the case. If not, we should close this outdated.
- Assigned to Grevil
- π©πͺGermany Anybody Porta Westfalica
@Grevil could you please check this and perhaps write a quick test to ensure it works as expected for the future?
Then we can close this :) - Status changed to Needs work
over 1 year ago 2:36pm 15 March 2023 - π©πͺGermany Grevil
The exact error is not reproducable in 2.x, BUT as soon as workspaces is activated, trying to add a new term to a unique term vocabulary, will lead to the following error:
Deprecated function: addcslashes(): Passing null to parameter #1 ($string) of type string is deprecated
- π©πͺGermany Anybody Porta Westfalica
@Grevil thanks! We should add this as a separate error. This one should be closed "cannot reproduce" or back to maintainer needs more info for the exact issue summary and steps to reproduce.
- π©πͺGermany Anybody Porta Westfalica
PS: Please always add the file and line where the error happens, that's the most important detail with errors :D
- Status changed to Needs review
over 1 year ago 3:13pm 15 March 2023 - π©πͺGermany Grevil
Interesting, "workspaces" seems to high jack the entity query object! No wonder it is highly experimental.
With "workspaces" activated, our taxonomy_term query will be of type "Drupal\workspaces\EntityQuery\Query" before executing. Without workspaces, it will be of type "Drupal\Core\Entity\Query\Sql\Query", so this is on their part.
@Anybody should decide on how to proceed here, but for me this module seems to be highly intrusive and not worthy to build around.
- π©πͺGermany Grevil
@Anybody, regarding #9, I was still investigating the problem...
- Issue was unassigned.
- π©πͺGermany Anybody Porta Westfalica
@Grevil: NP! :)
Could you please still provide the details for
Deprecated function: addcslashes(): Passing null to parameter #1 ($string) of type string is deprecated
?
(editing your comment above)If it only appears with workspaces, this should be fixed here. If it's always appearing, it should please be fixed in a separate issue.
You and me won't do anything about the Workspaces object, as we're not using it anywhere, so we'd have to pay the development without any benefit.
Then just leave this "Needs work" please for someone to fix. Happy to review MR with tests.
- Status changed to Closed: won't fix
over 1 year ago 3:35pm 15 March 2023 - π©πͺGermany Grevil
Full Error:
Deprecated function: addcslashes(): Passing null to parameter #1 ($string) of type string is deprecated in Drupal\Core\Database\Connection->escapeLike() (line 1269 of core/lib/Drupal/Core/Database/Connection.php). Drupal\Core\Database\Connection->escapeLike(NULL) (Line: 431) Drupal\Core\Database\Query\Select->escapeLike(NULL) (Line: 125) Drupal\Core\Entity\Query\Sql\Condition::translateCondition(Array, Object, ) (Line: 70) Drupal\Core\Entity\Query\Sql\Condition->compile(Object) (Line: 176) Drupal\Core\Entity\Query\Sql\Query->compile() (Line: 81) Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 52) Drupal\taxonomy_unique\TaxonomyUniqueManager->isUnique(Object) (Line: 52) Drupal\taxonomy_unique\Plugin\Validation\Constraint\TaxonomyUniqueValidator->validate(Object, Object) (Line: 202) Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateConstraints(Object, '00000000000004970000000000000000', Array) (Line: 154) Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateNode(Object) (Line: 164) Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validateNode(Object, Array, 1) (Line: 106) Drupal\Core\TypedData\Validation\RecursiveContextualValidator->validate(Object, NULL, NULL) (Line: 93) Drupal\Core\TypedData\Validation\RecursiveValidator->validate(Object) (Line: 132) Drupal\Core\TypedData\TypedData->validate() (Line: 489) Drupal\Core\Entity\ContentEntityBase->validate() (Line: 277) Drupal\workspaces\EntityOperations->entityFormAlter(Array, Object, 'taxonomy_term_my_tax_boiiii_form') (Line: 63) workspaces_form_alter(Array, Object, 'taxonomy_term_my_tax_boiiii_form') (Line: 545) Drupal\Core\Extension\ModuleHandler->alter('form', Array, Object, 'taxonomy_term_my_tax_boiiii_form') (Line: 838) Drupal\Core\Form\FormBuilder->prepareForm('taxonomy_term_my_tax_boiiii_form', Array, Object) (Line: 282) Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 48) Drupal\Core\Entity\EntityFormBuilder->getForm(Object) (Line: 26) Drupal\taxonomy\Controller\TaxonomyController->addForm(Object) call_user_func_array(Array, Array) (Line: 123) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 580) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97) Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 163) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 74) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106) Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 50) Drupal\ban\BanMiddleware->handle(Object, 1, 1) (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 686) Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
This is not fixable as it is a problem inside workspaces.
- π©πͺGermany Anybody Porta Westfalica
@wrd & @iarc13 perhaps you may create an issue at Workspaces and link this one?
- π©πͺGermany Grevil
The error gets thrown inside "TaxonomyUniqueManager" in line 50, when the query gets executed.
The issue queue for workspaces is pretty hard to find, here is the link: https://www.drupal.org/project/issues/drupal?component=workspaces.module β .
- Status changed to Needs work
over 1 year ago 8:09am 16 March 2023 - π©πͺGermany Grevil
I created an issue for "workspaces":
π Improve the way entity forms are "disabled" early when an entity is being edited in a workspace Needs work - Status changed to Needs review
over 1 year ago 2:32pm 16 March 2023 - π·π΄Romania amateescu
@Grevil, there's nothing wrong with overriding the entity query classes, and Workspaces is certainly not "highly experimental" because of it.
This problem is caused by
\Drupal\workspaces\EntityOperations::entityFormAlter()
which runs entity validation when the submitted form is being rebuilt, before the form values are extracted and set on the entity (term) object. That is arguably not the intended use case for entity validation, and we could explore a different approach in the core issue mentioned above.However, until then, there is a quick fix that can be done in this module: return early in
\Drupal\taxonomy_unique\TaxonomyUniqueManager::isUnique()
when the term object doesn't have a value set for thename
field. IMO this makes sense even without the Workspace issue, because there could be other modules which run entity validation outside of the regular form submit flow. - Status changed to Closed: outdated
7 months ago 9:52am 3 May 2024 - π·π΄Romania amateescu
It seems this small change won't make it into this module, the core issue in Workspaces is getting fixed though, so closing this one.