Исключение экземпляра Typo3

Почему я получаю это исключение?

Аргумент 1, передаваемый в KRT\KrtJobs\Domain\Model\Jobs::setPlaces(), должен быть экземпляром KRT\KrtJobs\Domain\Model\Places, заданной строкой, вызываемой в /var/www/html/Newwebsite/typo3conf/ext /krt_jobs/Classes/Controller/JobsController.php в строке 96

Это мой код в контроллере

if($arguments['jobSave']){
        $addJobsInfo = GeneralUtility::makeInstance('KRT\\krtJobs\\Domain\\Model\\Jobs'); 
        $addJobsInfo->setJobtitle($arguments['jobDesignation']);
        $addJobsInfo->setCompany($arguments['jobCompany']);
        $addJobsInfo->setPlaces($arguments['jobPlace']);
        $this->jobsRepository->add($addJobsInfo);
        $persistenceManager = $this->objectManager->get('TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager');
        $persistenceManager->persistAll();
    }

Это моя модель

/**
 * Sets the Places
 *
 * @param \KRT\krtJobs\Domain\Model\Places $places
 * @return void
 */
public function setPlaces(\KRT\krtJobs\Domain\Model\Places $places)
{
    $this->places = $places;
}

Я получаю сообщение об ошибке

$addJobsInfo->setPlaces($arguments['jobPlace']);

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

Я использую typo3 версии 7

Есть ли решение?


person Karthik    schedule 07.05.2018    source источник


Ответы (1)


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

$places = $this->placesRepository->findByName($arguments['jobPlace']);
$job->setPlaces($places):

или что-то в этом роде... и вы всегда должны использовать модели предметной области в единственном числе, например. "Место".

person dni    schedule 07.05.2018
comment
Это работает, спасибо. Спасибо за предложение, я буду иметь это в виду для будущих расширений. - person Karthik; 07.05.2018