Исключение экземпляра Typo3 - PullRequest
0 голосов
/ 07 мая 2018

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

Аргумент 1 передан в KRT \ KrtJobs \ Domain \ Model \ Jobs :: setPlaces () must быть экземпляром 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 ($ аргументы [ 'jobPlace']);

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

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

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

1 Ответ

0 голосов
/ 07 мая 2018

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

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

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

...