Typo3实例例外

时间:2018-05-07 06:38:07

标签: typo3 typo3-7.6.x typo3-8.x typo3-extensions

为什么我得到这个例外?

  

参数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($参数[' jobPlace']);

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

我使用的是typo3版本7

有解决方案吗?

1 个答案:

答案 0 :(得分:1)

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

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

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