为什么我得到这个例外?
参数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
有解决方案吗?
答案 0 :(得分:1)
你必须加载一个地方实例并设置它,错误说你不能设置字符串。
$places = $this->placesRepository->findByName($arguments['jobPlace']);
$job->setPlaces($places):
或类似的东西......你应该总是使用单一的域模型,例如。 “地域”。