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