[英]Drupal 9 Computed Fields Module
我安裝了計算字段模塊,我正在嘗試為下面的計算字段掛鈎。
但是我不確定我是否將代碼放在了正確的位置。
我只是將下面的代碼添加到計算字段模塊附帶的現有 compute_field_api.php 中。 這是放置此掛鈎的正確位置嗎?
它似乎不起作用,也沒有顯示。
function computed_field_field_rating_average_compute($entity_type_manager, $entity, $fields, $delta)
{
// Get rating fields to compute
$facilities_and_services = $entity->field_facilities_and_services->value;
$fairway_rating = $entity->field_fairway_rating->value;
$recommendable_to_friends_rating = $entity->field_recommendable_to_friends->value;
$food_rating = $entity->field_food_rating->value;
$value_rating = $entity->field_value_rating->value;
$english_rating = $entity->field_english_rating->value;
$layout_rating = $entity->field_layout_rating->value;
$quality_rating = $entity->field_quality_rating->value;
$greens_rating = $entity->field_greens_rating->value;
$length_rating = $entity->field_length_rating->value;
// Set Computed field value
$value = ($facilities_and_services + $fairway_rating + $recommendable_to_friends_rating + $food_rating + $value_rating + $english_rating + $layout_rating + $quality_rating + $greens_rating + $length_rating) / 10;
return $value;
}
添加此代碼后,我試圖清除所有緩存。 但這似乎不起作用。
有同樣的問題。 必須執行以下操作:
mymodule_computed_field_field_rating_average_compute
,而是如上所示 - 即,您編寫 function 的方式很好)。之后,計算值應該出現在保存的內容中,以及重新保存的內容的視圖中。
請注意,它似乎不是動態的(就像 D6 中的舊動態字段一樣),因此它不會神奇地出現在所有現有內容中。 為了實現這一點,我不得不做一些后端 SQL 以避免必須手動重新保存每個實體(不想為超過 120 個實體這樣做)。 仍然想知道我是否必須做一些其他的技巧來保持字段最新,盡管我的緩存設置,因為我試圖顯示的值是動態的,而不依賴於字段所在的節點。 .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.