Как получить доступ к значению объекта Drupal\Core\stringtranslation\translatablemarkup в форме?


Я попробовал это: dpm($button['#value']->string , но получил эту ошибку: доступ к защищенному свойству Drupal\Core\stringtranslation\translatablemarkup::$строка

В объекте формы мне нужно иметь возможность считывать это значение, а также изменять его. как я могу получить к нему доступ? спасибо

 4
Author: Diana, 2016-05-26

2 answers

Приведя объект к (строке), вы получите значение.

Пример:

$op = (string) $form_state->getValue('op');
 0
Author: Yash Khandelwal, 2017-05-03 11:07:53

Вы можете получить строковое значение, вызвав магическую функцию ->__tostring() или приведя объект к (string). Но в большинстве случаев вам не нужно этого делать, потому что если вы используете объект перевода в контексте строки, он автоматически вернет переведенную строку.

Вы не можете изменить исходную строку в объекте перевода. Вы должны создать новый с помощью t-функции:

$button['#value'] = $this->t('new text');
 3
Author: 4k4, 2016-05-26 19:45:23