2016-05-18 10 views
0

私は他のユーザーと一緒に書くことができるメッセージシステムを作成しています。私の問題は、複数のユーザーにメッセージを書くことです。私は、メッセージの受信者を格納するカスタムフィールドと、ユーザーがメッセージを読むかどうかを格納するフィールドを作成しました。しかし、デルタ経由で私のカスタムフィールドに複数の値を保存するにはどうしたらいいですか? (?それとも私のために容易になるだろうデルタとしてUIDを格納するための方法があります。)drupal 8複数の値を持つノードを作成する方法

これは以下のようになります。

(now)

は、このようにする必要があります:

(future)。ここで

は、私のメッセージ(ノード)を作成するために私のコードです:

public function submitForm(array &$form, FormStateInterface $form_state) { 
    $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); 
    // The messagetext. 
    $message = $form_state->getValue('message'); 
    // Use WYSIWYG or not 
    $format = (is_array($message) ? $message['format'] : 'basic_html'); 
    $message = (is_array($message) ? $message['value'] : '<p>' . $message . '</p>'); 

    // read = 0 -> unread 
    // read = 1 -> read 
    $read = 0 

    $newMessage = Node::create([ 
     'type' => 'msg_message', 
     'bundle' => 'msg_message', 
     'langcode' => $language, 
     'uid' => (int)$form['senderId'], 
     'title' => $form_state->getValue('subject'), 
     'status' => 1, 
     'promote' => false, 
     'created' => $form['timestamp'], 
     'changed' => $form['timestamp'], 
     'body' => [ 
      'summary' => '', 
      'value' => $message, 
      'format' => $format, 
     ], 
     'field_msg_receiver' => [ 
      'value' => json_encode($form_state->getValue('receiverId')), 
     ], 
     'field_msg_read' => [ 
      'value' => $read 
     ], 
    ]); 

    $newMessage->save(); 

    $form_state->setRedirect('message_system.message_overview.all'); 
} 

答えて

関連する問題