2012-04-07 63 views
4

我正在使用Drupal 7字段API,這看起來不錯:我可以爲'user'實體類型添加一個自定義字段,並在GUI中進行編輯。如何使用字段API設置字段值?

我使用field_get_items($entity_type, $entity, $field)來獲取自定義字段值。

我現在需要以編程方式設置我的自定義字段的值。

我該怎麼做?我無法在Drupal API文檔的任何地方找到field_set_items()函數調用。

回答

7

沒有函數來設置字段的值。通常您可以使用以下代碼設置字段的值。

$entity->$fieldname[$language][$delta] = $value; 

每個字段的變化是你在$value中傳遞的數組。例如,節點的主體字段使用以下結構。

array(
    'value' => 'Empty text. Revision 3.', 
    'summary' => '', 
    'format' => 'full_html', 
    'safe_value' => '<p>Empty text. Revision 3.</p>', 
    'safe_summary' => '', 
); 

用於分類術語的結構如下。

array(
    'tid' => 4, 
); 

$delta是通常爲0的值,但對於具有多個值的字段它可以具有任何值,只要它不高於它可以得到(其可以在被設置的值的最大數目更高特定字段的用戶界面)。
$language是語言ID,也可以設置爲LANGUAGE_NONE