创建扩展无效:Table 不存在
creating extension not working: Table does not exist
我是 typo3 CMS 的新手,我现在正在创建一个新的扩展,但是当我尝试从存储库执行查询时,我总是收到以下错误。
1247602160: Table 'hr.tx_hr_domain_model_job' doesn't exist
这是我的控制器
<?php
namespace Hr\Hr\Controller;
class HrController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
protected $jobsRepository;
protected $objectManager;
public function initializeAction()
{
parent::initializeAction();
$this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$this->jobsRepository = $this->objectManager->get('Hr\Hr\Domain\Repository\JobRepository');
}
/**
* jobs list
*
* @return void
*/
public function listAction()
{
$this->view->assign('jobs', $this->jobsRepository->findAll());
}
}
这是工作资料库class
<?php
namespace Hr\Hr\Domain\Repository;
class JobRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
}
这是ext_tables.sql文件的内容
#
# Table structure for table 'tx_hr_job'
#
CREATE TABLE IF NOT EXISTS `tx_hr_job` (
`JobId` int(10) NOT NULL,
`Kunde` varchar(255) NOT NULL,
`Titel` varchar(255) NOT NULL,
`Ort` varchar(255) NOT NULL,
`Volltext` text NOT NULL,
`Bundesland` varchar(255) NOT NULL,
`Region` varchar(255) NOT NULL,
`Branche` varchar(255) NOT NULL,
`Berufsgruppe` varchar(255) NOT NULL,
`Stellenart` varchar(255) NOT NULL,
`Datum` date NOT NULL,
PRIMARY KEY (`JobId`)
);
有什么帮助吗?
按照惯例,table 名称应该是 tx_hr_domain_model_job
,或者您可以使用 table 映射,但这可能很棘手。
使用 extension_builder
启动您的分机 - 它是创建基本模型的好工具,您只需拖放即可完成 - 还有关系等。
更重要的是,它将创建所有必需的代码片段、模型、存储库 TCA 配置等,因此您会看到什么是最有效的方法。
我是 typo3 CMS 的新手,我现在正在创建一个新的扩展,但是当我尝试从存储库执行查询时,我总是收到以下错误。
1247602160: Table 'hr.tx_hr_domain_model_job' doesn't exist
这是我的控制器
<?php
namespace Hr\Hr\Controller;
class HrController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
protected $jobsRepository;
protected $objectManager;
public function initializeAction()
{
parent::initializeAction();
$this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$this->jobsRepository = $this->objectManager->get('Hr\Hr\Domain\Repository\JobRepository');
}
/**
* jobs list
*
* @return void
*/
public function listAction()
{
$this->view->assign('jobs', $this->jobsRepository->findAll());
}
}
这是工作资料库class
<?php
namespace Hr\Hr\Domain\Repository;
class JobRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
}
这是ext_tables.sql文件的内容
#
# Table structure for table 'tx_hr_job'
#
CREATE TABLE IF NOT EXISTS `tx_hr_job` (
`JobId` int(10) NOT NULL,
`Kunde` varchar(255) NOT NULL,
`Titel` varchar(255) NOT NULL,
`Ort` varchar(255) NOT NULL,
`Volltext` text NOT NULL,
`Bundesland` varchar(255) NOT NULL,
`Region` varchar(255) NOT NULL,
`Branche` varchar(255) NOT NULL,
`Berufsgruppe` varchar(255) NOT NULL,
`Stellenart` varchar(255) NOT NULL,
`Datum` date NOT NULL,
PRIMARY KEY (`JobId`)
);
有什么帮助吗?
按照惯例,table 名称应该是 tx_hr_domain_model_job
,或者您可以使用 table 映射,但这可能很棘手。
使用 extension_builder
启动您的分机 - 它是创建基本模型的好工具,您只需拖放即可完成 - 还有关系等。
更重要的是,它将创建所有必需的代码片段、模型、存储库 TCA 配置等,因此您会看到什么是最有效的方法。