首页 > 解决方案 > Typo3 实例异常

问题描述

为什么我得到这个异常?

传递给 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['jobPlace']);

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

我正在使用typo3版本7

有解决办法吗?

标签: typo3typo3-7.6.xtypo3-8.xtypo3-extensions

解决方案


你必须加载一个地方实例并设置它,错误说你不能设置字符串。

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

或类似的东西......你应该总是使用单数的领域模型,例如。“地方”。


推荐阅读