Изменить идентификатор хранилища при программном сохранении модели

Я новичок в Extbase и пытаюсь программно сохранить новую модель. Работает следующий код:

$testModel = $this->objectManager->create('Tx_MyExtension_Domain_Model_Test');
$testModel->setName('testing');
$this->TestRepository->add($testModel);
$this->persistenceManager->persistAll();

Однако я хотел бы изменить папку хранения, в которую он помещен (таким образом, измените поле pid, которое запись получает в базе данных). Как мне это сделать?


person user125661    schedule 28.02.2013    source источник


Ответы (1)


Вы можете установить идентификатор хранилища по умолчанию для новых записей для конкретной модели в настройке typoscript вашего расширения:

plugin.tx_your_extension {
    persistence {
        classes {
            Tx_YourExtension_Domain_Model_YourModel.newRecordStoragePid = 74
        }
    }
}

Теперь все новые модели сохраняются в этом месте.

person Merec    schedule 01.03.2013
comment
Это работает, спасибо! Есть ли также возможность сообщить менеджеру постоянства, какой pid хранилища использовать (только для одного метода, а не вообще)? - person user125661; 05.03.2013
comment
Да, вы можете добавить столбец pid в свою модель и установить его, это первое, на что смотрит модель. Но, пожалуйста, поместите это в новый вопрос. - person Merec; 05.03.2013
comment
Чтобы добавить к комментарию @Merec: вы можете найти больше информации обо всем процессе по адресу alt.mimi.kaktusteam.de/ - person maryisdead; 15.04.2015
comment
@Merec, вы можете посмотреть на мой вопрос и дать полный ответ с вашим предложением... - person webMan; 23.12.2016