Typo3 类型3实例异常

Typo3 类型3实例异常,typo3,typo3-7.6.x,typo3-8.x,typo3-extensions,Typo3,Typo3 7.6.x,Typo3 8.x,Typo3 Extensions,为什么我会得到这个例外 传递给KRT\KrtJobs\Domain\Model\Jobs::setPlaces()的参数1必须 是KRT\KrtJobs\Domain\Model\Places的实例,给定字符串, 叫来 /var/www/html/Newwebsite/typo3conf/ext/krt_jobs/Classes/Controller/JobsController.php 在线96 这是我在控制器中的代码 if($arguments['jobSave']){ $a

为什么我会得到这个例外

传递给KRT\KrtJobs\Domain\Model\Jobs::setPlaces()的参数1必须 是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['jobsplace'])

我想将数据插入jobs数据库,但位置是从另一个表调用的。所以当我尝试插入时,我得到了上面的异常

我正在使用typo3版本7


有解决方案吗?

您必须加载一个Places实例并进行设置,错误提示您无法设置字符串

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

或者像这样的。。。您应该始终使用单数形式的域模型,例如“Place”。

这很有效,谢谢。谢谢你的建议,我会记住这一点,以便将来扩展。