creating extension not working: Table does not exist

1k views Asked by At

I'm new in typo3 CMS and I'm now creating a new extension but I always get the following error when I try to execute query from repository.

1247602160: Table 'hr.tx_hr_domain_model_job' doesn't exist

this is my controller

<?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());
    }

}

and this is job repository class

<?php

namespace Hr\Hr\Domain\Repository;

class JobRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{

}

this is the content of ext_tables.sql file

#
# 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`)
);

any help?

1

There are 1 answers

2
biesior On BEST ANSWER

By convention the table name should be tx_hr_domain_model_job, alternatively you can use table mapping, but it could be tricky.

Use the extension_builder for kickstarting your ext - it's great tool for creating basic models, you can do it just with drag'n'drop - also relations, etc.

What's more important it will create all required pieces of code, models, repositories TCA configs etc so you'll see what's the most valid approach.