2017-08-17 12 views
0

コンテンツタイプとビューを作成したDrupal 8アプリケーションのカスタムモジュールがあります。 "news"モジュールは、本番環境で正常に動作しています。それを使用して多くのコンテンツが作成されています。Drupal 8 hook_update_nコード例が必要

2つの新しいフィールドとビューの変更が強化されました。私は開発環境でadmin UIを使って変更を加えましたが、新しいサイトインスタンスでモジュールをインストールした後にUIを変更する必要がないように、これらの変更をバージョン管理用のモジュールのコードに入れておく必要があります。

 
The fields: 
field_show_on_page, Field Type: List (text) 
field_news_dateline, Field Type: Date 
View: 
The change in the view is on what field the sorting is done. 

フィールドやビュー設定をエクスポートするには、簡単なことやモジュールに追加>設定>フォルダをインストールしますが、変更をピックアップするために、モジュールをアンインストールし、再インストールする必要と、そのことができますニュースコンテンツを削除する必要はありませんが、これは受け入れられません。

news.installファイルのhook_update_Nで変更を行うことができます。しかし、私は、この必要性に十分に近いこの関数の例を見つけることはできません。私は関数が以下のように書かれるべきであると理解しています:

news_update_8001() {}
しかし、2つのフィールドを追加してビューを更新するにはどのような体裁が必要でしょうか?

ありがとうございます。

答えて

0

あなたのconfigに新しいフィールドを持っている場合あなたは自分のフックでこれを追加することで、古いフィールドを削除することができ、その後、あなたが設定をインポートする前にdrush UPDBを実行します。

$field = \Drupal::entityTypeManager()->getStorage('field_config')->load('node.news.old_field'); 
if ($field) { 
    $field->delete(); 
} 
+0

ありがとうございましたが、私はしないでくださいフィールドを削除する必要があります。新しいフィールドを2つ追加するだけです。フィールド設定を追加し、hook_update_Nでそれらを参照する方法がありますか?それはどのように行われていますか? また、ビューはどのように更新されますか? –

+0

機能やdrupal設定のインポート/エクスポートを使用していますか? –

+0

私は2つのフィールドとビューのエクスポートを使用しています。 –