D8のルールアクションでカスタムフィールド名field_heatにアクセスしたいのですが、受け付けません。これは私の状態です:
Node.title.valueのようなビルドフィールドを使用する場合、問題なく機能するため、カスタムフィールドに問題があるはずです。 Rules 8.x-3.0-alpha1を使用しています。
問題nr 2574691のコメントnr 7 の記述に注意してください。
rules 8.x-3.0-alpha1 ...はプレビューリリースであり、本番サイト向けではありません。自己責任。
それを念頭に置いて、詳細を読んで rules 8.x-3.0-alfa1 で同様の実験を行ってください。
field_image
」のフィールドがすでにあるコンテンツタイプ「Article」を使用します(D8ボックスの外)。/admin/structure/types/manage/article/fields
に移動します。/admin/config/workflow/rules
に移動して、次の詳細を含む新しいルールを作成します。field_image
フィールド用)のようなRules Conditionを追加します。これを行うには、[値]([エンティティ]ボックス内)をクリックして、node
を選択します。また、[値]([フィールド]ボックス内)をクリックし、field_image
を選択します。次に、 Save ボタン(ルール条件を保存するため)。node:field_image:value
(このデータセレクターでは、スクリーンプリントの:
(2回)ではなく.
(2回)を使用していることに注意してください)。また、「値」ボックス内に「値」を入力します(例:myNiceImage
)。次に、 Save ボタン(ルールアクションを保存するため)。/admin/config/workflow/rules
に移動して、ルールが実際に保存されたことを確認します(ルールはそこに表示されます)。admin/config/development/configuration/single/export
に移動し、「構成タイプ」として「反応ルール」を選択します。次に、ルールのラベルを「構成名」として選択します。エクスポートされたルールが表示されるはずです。これは私のものに似ているはずです。
uuid: ab289332-0b45-484f-a1ae-38842620b7e4
langcode: en
status: true
dependencies: { }
id: check_a_field_before_saving_a_node
label: 'Check a field before saving a node'
events:
-
event_name: 'rules_entity_presave:node'
description: ''
tags:
- ''
config_version: '3'
expression:
id: rules_rule
uuid: 354332c5-8307-4097-b33c-0e77307a5e0e
conditions:
id: rules_and
uuid: e82407a4-05c6-45d3-8195-1c1b5f34a07d
conditions:
-
id: rules_condition
uuid: 3c9094ed-95ec-4202-8398-5a6ca000604a
context_values:
entity: node
field: field_image
context_mapping: { }
context_processors: { }
provides_mapping: { }
condition_id: rules_entity_has_field
negate: false
actions:
id: rules_action_set
uuid: 3313095c-f75a-46f2-8d11-f845d12a90f2
actions:
-
id: rules_action
uuid: 23a3a68e-893e-48c4-a7ee-102201af5a25
context_values:
data: 'node:field_image:value'
value: myNiceImage
context_mapping: { }
context_processors: { }
provides_mapping: { }
action_id: rules_data_set
上記のエクスポートは、これを完全に保存できることを示しています。それ以外の場合はエクスポートできなかったためですよね?
これまでのところ良好ですが、次に、ルールアクションで割り当てる値をupdateにしたかったので、myNiceImage
をmyNewestNiceImage
に更新する必要があるとしましょう。そこで、ルールアクションに戻り、編集を開始しました。しかし、その結果、次のようなエラーメッセージが表示されました。
コンテキストデータは、セレクターを使用してのみ構成できます。
をクリックして Switch to data selection ボタン(ボタンのラベルが Swith to direct input mode)、そして再試行すると、次のような別のエラーメッセージが表示されます。
コンテキストデータのデータセレクターnode:field_imageが無効です。変数node:field_imageを取得できません。定義されていません。
そのため、ルールアクションの更新は、実行する必要があるものではないようです(少なくとも、現在のD8リリースのルールモジュールでは)。
ただし、実際に値を更新するために実行した手順(myNiceImage
からmyNewestNiceImage
へ)は次のとおりです。
myNiceImage
を使用)。myNewestNiceImage
を使用)。ほら!
PS:「Entity has field」を使用していて、「エンティティのタイプは "?
同じエラーが発生しました。私がしたことは: