Typo3 类型3实例异常
为什么我会得到这个例外 传递给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 这是我在控制器中的代码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
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”。这很有效,谢谢。谢谢你的建议,我会记住这一点,以便将来扩展。