Typo3 实例异常

Typo3 Instance Exception

为什么我会收到此异常?

Argument 1 passed to KRT\KrtJobs\Domain\Model\Jobs::setPlaces() must be an instance of KRT\KrtJobs\Domain\Model\Places, string given, called in /var/www/html/Newwebsite/typo3conf/ext/krt_jobs/Classes/Controller/JobsController.php on line 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']);

我想将数据插入作业数据库,但这些地方是从另一个 table 调用的。因此,当我尝试插入时,出现了上述异常。

我正在使用 typo3 版本 7

有解决办法吗?

您必须加载地点实例并进行设置,错误提示您无法设置字符串。

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

或类似的东西...并且您应该始终以单数形式使用域模型,例如。 "Place".