Рейтинг:0

Как программно добавить элемент абзаца в учетную запись пользователя?

флаг cn

я уже добавила История заезда/отъезда поле для учетной записи пользователя, которая имеет дата заезда и проверить дату поля.

Как я могу программно добавлять новые элементы в История заезда/отъезда?

Мне нужно создать историю для пользователей.

Дата заезда Проверить дату
04/05/21 05/07/21
03/05/20 04/14/20
leymannx avatar
флаг ne
Довольно широкий вопрос. что ты уже испробовал? Вы проверили «программно создавать элементы абзаца» или что-то подобное? Пользовательский объект — это просто еще один полевой объект. То же, что узлы. Большинство ответов, которые вы найдете, относятся к узлам. Вам просто нужно заменить объект узла на пользовательский объект, и все готово. Когда и где вы хотите обновить пользователей? вызов API? Какой-то крючок, который срабатывает в конкретной ситуации?
Ruzanna Hovasapyan avatar
флаг cn
например, у меня есть field_history как абзац в учетной записи пользователя, и в абзаце есть 2 поля field_checkin_date, field_checkout_date, и я хочу, чтобы в какое-то действие добавлялись новые элементы абзаца, каковы должны быть мои шаги? 1. как добраться до поля абзаца для пользователя? 2. как добавить новый элемент абзаца с 2 подполями? 3. как добавить новый пункт в абзац?
Ruzanna Hovasapyan avatar
флаг cn
Спасибо всем, этот код решает мою задачу:
Ruzanna Hovasapyan avatar
флаг cn
$paragraph = Paragraph::create(['type' => 'checkin_history', 'field_checkin' => $checkin_date, 'field_checkout' => format_date(time(), 'html_date')]); $абзац->сохранить(); $current = $account->get('field_check_in_out_history')->getValue(); $текущий[] = массив( 'target_id' => $paragraph->id(), 'target_revision_id' => $paragraph->getRevisionId(), ); $account->set('field_check_in_out_history', $current); $аккаунт->сохранить();
Ruzanna Hovasapyan avatar
флаг cn
куда: //field_check_in_out_history -> поле в учетной записи пользователя //checkin_history -> тип абзаца // поля абзаца field_checkin и field_checkout
leymannx avatar
флаг ne
Пожалуйста, обновите вопрос для уточнения и добавления деталей, пожалуйста, не используйте для этого комментарии. Следующий читатель должен получить всю необходимую информацию с первого взгляда.
leymannx avatar
флаг ne
Затем, пожалуйста, добавьте ответ к своему решению и примите его, чтобы помочь будущим читателям получить решение с первого взгляда.
Рейтинг:0
флаг cn

Мне удалось выполнить задачу, используя следующий код.

$абзац = абзац::создать([
  'type' => 'checkin_history',
  'field_checkin' => $checkin_date,
  'field_checkout' => format_date(время(), 'html_date')
]); 
$абзац->сохранить(); 

$current = $account->get('field_check_in_out_history')->getValue(); $текущий[] = [
  'target_id' => $paragraph->id(),
  'target_revision_id' => $paragraph->getRevisionId(),
]; 

$account->set('field_check_in_out_history', $current); 
$аккаунт->сохранить();
  • field_check_in_out_history поле учетной записи пользователя
  • checkin_history тип абзаца
  • field_checkin и field_checkout поля абзаца

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.