问题标签 [drupal-entities]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
68 浏览

drupal - 如何使 Drupal Commerce 配置实体可修改

我在前端有一个使用 Drupal 的 JSONAPI 的 Ember 应用程序。

Drupal 安装了商务模块。

ember 应用程序正在请求所有 product_types,并且需要显示有关产品类型的信息。

产品类型上有描述变量类型和标签等字段,但作为匿名用户,我看不到所有这些属性,只有标签。

这似乎是商务模块检查权限的方式的问题。

在野外——https: //github.com/Free5Dev/drupalMagellium/blob/f5b0344a528a1df788c94e7558a6826dc9a2f736/core/modules/jsonapi/src/Access/EntityAccessChecker.php#L181

这里 jsonapi 决定渲染实体的有限版本。

似乎需要使该实体可修改才能通过上述检查并完全呈现。

https://github.com/drupalcommerce/commerce/blob/8.x-2.x/modules/product/src/Entity/ProductType.php

如何使 ProductType 实体可修改?

我发现了这个https://www.drupal.org/docs/8/api/entity-api/making-an-entity-revisionable但它的解释似乎有限。

0 投票
1 回答
348 浏览

php - D8 PHP:当值从“1”更改为“01”时,忽略通过 set() 和 save() 更新节点实体上的“Text (plain)”字段值

目标:使用实体 ->set() 和 ->save() 以编程方式将字符串字段的值从“1”更改为“01”

当尝试以编程方式(通过自定义模块的 cron 挂钩)更新节点上的字段时,“Text (plain)”字段的初始值为“1”。当尝试以编程方式将字段更新为“01”(0 对业务目的很重要)时,更改将被忽略。但是,如果我设置为几乎任何其他值,它确实有效。

如果我要通过 UI 的节点编辑表单进行更改,则更改将保存在同一场景中。

有人遇到过这种情况么?似乎必须进行一些验证,'01' == '1'; // true在 PHP 中保存为(作为字符串)之前比较字符串。

0 投票
0 回答
66 浏览

drupal - Drupal 7 创建自定义实体

我正在尝试制作一个包含一些字段的表单并将值保存在 Drupal 7 中,每个用户都可以在其中输入他们的数据。我尝试使用现有数据库表创建自定义实体,如下所示:

并且我不断收到此错误:array_keys() 期望参数 1 为数组,给定 common.inc:7334 PHP 警告:在第 7314 行的 /var/www/html/includes/common.inc 中为 foreach() 提供的参数无效

当我运行命令时:

它返回 false 导致该错误。有任何想法吗?