Extbase: измененный объект не сохранен в хранилище правильно

Я использую TYPO3 7.6.10, и я строю свое первое расширение.

Я хочу добавить свойство к моему объекту в функции createAction моего контроллера.
Но изменения не сохраняются.

Вот мой код:

/**
* action create
*
* @param \Typo3\LpSurvey\Domain\Model\Sigil $newSigil
* @param array $answers
* @internal param Survey $newSurvey
*/
public function createAction(Sigil $newSigil, Array $answers)
{
$newSurvey = $this->objectManager->get('Typo3\LpSurvey\Domain\Model\Survey');
$this->userID = $GLOBALS['TSFE']->fe_user->user['uid'];

//this modifications are saved
foreach ($answers as $key => $answer) {
$newSurveyItem = $this->objectManager->get('Typo3\LpSurvey\Domain\Model\SurveyItem');

$newSurveyItem->setQuestionId($key);
$newSurveyItem->setValue($answer);

$newSurvey->addAnswer($newSurveyItem);
}//BUT this modification is not saved
$newSigil->setUserID($this->userID);

$newSigil->setSurvey($newSurvey);

$this->sigilRepository->add($newSigil);

$this->redirect('list');
}

Если я отлаживаю свой объект $newSigil ИД пользователя установлен, но после добавления в хранилище будет сохранено значение по умолчанию.

Я не понимаю почему.
Я также пытаюсь сохранить это вручную, используя следующий код, но без решения:

/**
* @var \typo3\CMS\Extbase\Persistence\Generic\PersistenceManager
* @inject
*/
protected $persistenceManager;

public function createAction(Sigil $newSigil, Array $answers)
{
$newSurvey = $this->objectManager->get('Typo3\LpSurvey\Domain\Model\Survey');
$this->userID = $GLOBALS['TSFE']->fe_user->user['uid'];foreach ($answers as $key => $answer) {
$newSurveyItem = $this->objectManager->get('Typo3\LpSurvey\Domain\Model\SurveyItem');

$newSurveyItem->setQuestionId($key);
$newSurveyItem->setValue($answer);

$newSurvey->addAnswer($newSurveyItem);
}$newSigil->setUserID($this->userID);
$newSigil->setSurvey($newSurvey);

$this->persistenceManager->persistAll();

$this->sigilRepository->add($newSigil);

$this->redirect('list');
}

Надеюсь вопрос понятен

С наилучшими пожеланиями Феликс

1

Решение

Может быть, UserID неверно назван? Если ваша база данных называется user_id Ваша собственность для домена должна userId, Только если ваше поле базы данных называется user_i_d должно userID,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]