在节点上存储字段 -- 8 领域 和 forms 领域 和 files 领域 drupal 相关 的问题

Store a field on a node


0
vote

问题

中文

我更改了节点表单并添加了 manage_file -field;然后,我在 #entity_builders 属性上添加了一个回调。

  $fid = $form_state->getValue('file')[0]; $file = File::load($fid);  $file->setPermanent(); $file->save();  // $node->set('field_file', $file); $node->field_file->setValue([   'target_id' => $file->id(), ]);   

但这使我给了我以下错误:

可能无法引用文件字段中使用的文件。

此时,我不能使用file_usage,因为节点尚未保存。

如何解决这个问题?

英文原文

I altered the node form and added an manage_file-field; then, I added a callback on the #entity_builders property.

$fid = $form_state->getValue('file')[0]; $file = File::load($fid);  $file->setPermanent(); $file->save();  // $node->set('field_file', $file); $node->field_file->setValue([   'target_id' => $file->id(), ]); 

However this gives me the following error:

The file used in the File field may not be referenced.

At this point, I cannot use file_usage, since the node is not yet saved.

How can I solve this?

        
   
   

回答列表

0
 
vote

将创建的文件的状态设置为永久性以外的东西。

所以替换

  $file->setPermanent();   

  $file->status = 0;   

文件字段将将状态设置为 permanent 并添加file_usage元数据。

 

Set the status of the created file to something other than PERMANENT.

So replace

$file->setPermanent(); 

with

$file->status = 0; 

The file field will then set the status to permanent and add the file_usage metadata.

 
 

相关问题

3  Computed字段上的自定义视图过滤器  ( Custom views filter on computed field ) 
我已经构建了一个自定义字段,进入显示菜单名称分配给节点的视图中,但我想在菜单名称上过滤。如何在此计算的字段上过滤?我发现的唯一示例用于更新SQL查询以过滤表中的现有值。 ...

1  如何将类添加到导航Twig模板中的菜单项  ( How to add classes to menu items in navigation twig template ) 
我想为 <a> <a> -tags添加类,用于有一个子菜单的菜单项。 目前这是我的代码,我只能将类添加到 <li> 元素: {{ menus.menu_links(items, attributes, 0) }} {% macro menu_links(items, attributes, menu_le...

0  如何在侧栏中自动呈现子菜单块?  ( How to automatically render submenu block in sidebar ) 
我想在放置在侧边栏(Drupal 8)中的块中自动渲染子菜单。这个子菜单可以是我在主导航菜单中的那些设置之一,但也可以是其他定制菜单中的一个。 我现在所做的是: 创建一个新的独立菜单,可以复制主要导航子菜单或每个定制菜单中的每一个。 每个菜单/子菜单在侧边栏中放置一个块。 根据 Visibility -> Pa...

4  为什么缩略图图像没有加载?  ( Why are the thumbnail images not loading ) 
我正在使用drupal 8,并刚刚将我的网站移动到共享托管。当我在Shared托管环境上上传标准映像字段时,缩略图图像不会显示。这在我当地(WAMP)开发环境中完美地工作。 完整大小的图像位于站点/默认/文件/ 2017-02 / redstart.jpg中,并显示正确显示。 缩略图地址是/ sites/defaul...

1  如何修复错误:无法加载资源:服务器响应状态为404  ( How to fix error failed to load resource the server responded with a status of ) 
我有一个从 https://github.com/drupal/drupal.git 镜像的repo,并将其集成在OpenShift Web服务器中。 我用DEV网站OpenShift URL进行了常规安装。它成功安装但网站已被打破。我已登录为管理员,但只有一个没有主题页。据说,它应该生成所有必需的文件和文件夹。 当...

1  如何进口分类条款  ( How do i import taxonomy terms ) 
这几乎是6000行的分类术语,范围超过8列,我想从CSV导入。我想将它用于方面搜索。 csv位于 (google_product_category)。 格式就像: # Google_Product_Taxonomy_Version: 2015-02-19 1 - Animals & Pet Supplies ...

1  如何以编程方式取消选中复选框?  ( How to uncheck a checkbox programmatically ) 
如何在Drupal 8中以编程方式取消选中复选框。 I need this in an ajax call, when an option is selected, a checkbox must be unchecked ...

3  如果它从未使用过,我们需要Upsert类中需要关键属性?  ( Why we need the key property in the upsert class if it is never used ) 
我最近尝试使用一个 Upsert 在一个表中的查询,具有复合主键,但是当我去看 key()方法它只允许一个参数而不是一个数组,所以我们只能有一个单数键: public function key($field) { $this->key = $field; return $this; } 我刚刚尝...

1  添加下拉目(HTML选择)以联系表格  ( Adding drop down subject html select to contact form ) 
我想在联系表单中添加一个选择的字段,如下拉表格中的下拉,让用户选择他们联系的原因(联系人,客户支持等) 基于此(优秀)答案添加复选框以联系表格,我€™ve company使用复选框创建一个字段: 来源:添加复选框以联系表格 如何用选择? 解决方案: 您可以选择"管理表单显示" 。列"窗口小部件" 允许选择"选择...

3  如何在核心JavaScript库中覆盖单个函数?  ( How to override a single function in a core javascript library ) 
drupal 8的核心评论模块具有库"node-new-comments-link" ,文件"node-new-comments-link.js" 。 其中包含 Drupal.behaviors.nodeNewCommentsLink = { ... } 在库中调用另一个函数,又调用库中的另一个函数 9988776...

11  如何创建模态Windows(弹出窗口)?  ( How to create modal windows pop ups ) 
我正在尝试使用Drupal 8的核心功能在模态窗口中打开页面。不幸的是,很难找到一些关于它的官方文档,而大多数涉及这个话题的博客似乎已经过时了。 但据我所知,应该可以创建一个模态通过将以下属性添加到A元素: class="use-ajax" data-dialog-type="modal" 因此完整的例子...

0  如何将SQL查询结果返回在模板中的自定义变量?  ( How do i return an sql query result as custom variable in a template ) 
是否有任何方法可以使用挂钩传递SQL结果.Theme文件?我的场景如下:我有一个段落模块的视图,其中我需要来自内容类型新闻的所有节点来迭代和显示分类项。 ...

2  根据自定义块类型更改自定义块  ( Alter a custom block depending on custom block type ) 
我需要更改在我网站上显示的自定义类型'my_custom_block_type'的所有块。 为了实现这一目标,我添加了一个自定义prerender,其中我在块包上过滤: function my_module_block_view_alter(array &$build, DrupalCoreBlockBlockP...

1  将变量从一个预处理功能传递给另一个函数.Theme  ( Pass variables from one preprocess function to another in theme ) 
我正在在Drupal 8中开发主题,我有2个枝条文件。一个是 page.html.twig ,另一个是 status-messages.html.twig 。 问题是状态 - 消息的变量名为 message_list (数组),但此变量受到保护,因此其他文件无法访问它。我试图从 theme_preprocess_pa...

3  日期字段暴露过滤器 - 选择年份  ( Date field exposed filter select year ) 
在Drupal 7中,我创建了与日期字段的年份的暴露过滤器。 (Selet List)。 查看所有 2017 2016 2015 等... 以及在创建此类过滤器时,我们在此图片上有类似的选项: 但是,现在在Drupal 8中,我看不到那是支持的。 我已经安装了更好的曝光过滤器,但只有我可以选...

2  避免致命猜测异常错误[关闭]  ( Avoid fatal guzzle exception error ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

1  基本验证,但简单的auth不适用于创建用户  ( Basic auth working but simple auth not working for create user ) 
我在Drupal 8 REST API中完全被困在这里,任何帮助都非常适合。 问题: 我正在使用drupal 8.3.x,simple_auth模块来生成休息的验证令牌。当我尝试通过授权承载创建用户时,它不起作用,但是当我尝试由基本验证创建时,它可以正常工作。我还启用了用户休息的权限。 请参阅用户资源的权限:UR...

0  将其他自定义提交处理程序添加到默认搜索API SOLR视图过滤器中?  ( Add an additional custom submit handler to default search api solr view filter ) 
我想每次使用 99887667 提供的默认视图过滤器一起搜索术语时运行其他提交处理程序。 这是我的表格改变代码: /** * Implements hook_form_FORM_ID_alter. */ function my_module_form_views_exposed_form_alter(&$fo...

4  了解给定页面中加载了哪些主题  ( Find out which theme is loaded in a given page ) 
我正在尝试为Drupal 8做一些主题,我试图了解给定页面上使用的主题。我记得在Drupal 7中使用主题开发人员模块,并在主题开发人员开始遇到问题后使用 dpm() 页面数组。 如何与Drupal 8实现相同? ...

0  创建具有多个属性的字段  ( Creating field with multiple properties ) 
我正在创建一个字段插件,其中我有要求如下 字段名称:问题 属性: 问题文本:字符串 问题类型:整数(0,1,2) 问题选项:字符串数组 我定义了这样的架构。我不确定我是否正在为Question选项做正确的权利 public static function schema(FieldStorageDefinit...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.