如何解决向节点内段落的分类参考子字段添加 notEmpty 约束?
当前存在字段验证和段落问题,如下所示:
为了解决这个问题,我在一个已经需要的字段上创建了一个约束。显然,这里应该触发 required 属性,但它不是(参见上面的错误)。
我遇到的问题是有问题的字段在调用约束时似乎不是空的。也许这是错误的一部分?
例如,假设术语引用字段当前的值为“100”(术语 ID)。用户清除该字段并关闭该段落,以便该字段现在为空(当提交表单时该段落打开时验证有效,因此需要关闭该段落才能暴露此问题)。
当提交表单并调用我的约束时,从我通过 xdebug 得知的情况来看,“100”的旧值仍在该字段中,因此 notEmpty 检查未能找到违规。
public function validate($items,Constraint $constraint)
{
foreach ($items as $item) {
$node = $item->getEntity();
$paras = $node->field_myfield_container->referencedEntities();
foreach($paras as $k => $v){
// The value still exists even though it's been cleared in the form????
$field_my_subfield_value = $paras[$k]->field_my_subfield->target_id ?? NULL;
}
}
}
那么也许有一种方法可以让我深入研究 hook_entity_bundle_field_info_alter() 钩子中的子字段 (field_my_subfield)?
类似的东西?
if ($bundle === 'my_bundle') {
if (isset($fields['field_myfield_container'])) {
// Do notEmpty check here??
if (empty($fields['field_my_subfield'])) {
$fields['field_my_subfield']->addConstraint('EmptyParagraph',[]);
}
}
}
但是,当我清除缓存甚至重新加载页面时,我会收到以下错误消息:
注意:未定义索引:field_my_subfield in ....
可能是因为钩子中不存在该字段。
非常感谢任何建议。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。