[TYPO3-german] Mapping auf SysFile geht nicht - im AJAX Call
David Brünner
david.bruenner at t-online.de
Mon Oct 16 16:29:32 CEST 2017
Ich meinem Modul versuche ich die Tabelle SysFile zu mappen.
Aber das klappt nicht - ich habe bereits diverse andere Tabellen wie BeUsers, SysFileReference erfolgreich gemappt und kann mir nicht erklären warum das einfach nicht funktioniert.
Ich sollte noch erwähnen, das ich versuche die Tabelle in einem AJAX-Call zu mappen.
Schreibe ich den Code aus der Methode des AJAX-Calls in die listAction() funktioniert der Code. Ist also korrekt - aber warum gehts im AJAX-Call nicht?
Ich habe zwei Klassen, SysFile und SysFileRepository:
Classes\Domain\Model\SysFile.php
------------------------------------------
<?php
namespace KKSoftware\Kkbaybw\Domain\Model;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
class SysFile extends AbstractEntity {
/**
* @var string
*/
protected $identifier;
/**
* @return string
*/
public function getIdentifier() {
return $this->identifier;
}
}
------------------------------------------
Classes\Domain\Repository\SysFileRepository
------------------------------------------
<?php
namespace KKSoftware\Kkbaybw\Domain\Repository;
class SysFileRepository extends BaseRepository {
}
------------------------------------------
und das Mapping in der setup.ts:
------------------------------------------
module.tx_kkbaybw {
persistence {
// NUR ZUM VERGLEICH (DAS FUNKTIONIERT)
// map to be_users
KKSoftware\Kkbaybw\Domain\Model\BeUsers {
mapping {
tableName = be_users
}
}
// DAS GEHT NICHT - WIESO???
KKSoftware\Kkbaybw\Domain\Model\SysFile {
mapping {
tableName = sys_file
}
}
}
}
------------------------------------------
die localconf.php
------------------------------------------
...
$GLOBALS['TYPO3_CONF_VARS']['BE']['AJAX']['kkbaybwBackendImageInWYSIWIG'] = [
'callbackMethod' => 'KKSoftware\\Kkbaybw\\Controller\\Backend\AnsprechpartnerController->imageUploadInWYSIWIG'
];
....
------------------------------------------
und zuletzt der AnsprechpartnerController
------------------------------------------
use KKSoftware\Kkbaybw\Domain\Repository\SysFileRepository;
public class AnsprechpartnerController extends BaseController {
/**
* @var SysFileRepository $sysFileRepository
*/
protected $sysFileRepository;
/**
* @param SysFileRepository $sysFileRepository
*/
public function injectSysFileRepository(SysFileRepository $sysFileRepository) {
$this->sysFileRepository = $sysFileRepository;
}
public function imageUploadInWYSIWIG() {
$postData = GeneralUtility::_POST();
if (!isset($postData['uid'])) {
return json_encode(['result' => 'Missing arguments']);
} else {
$uid = $postData['uid'];
$om = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
/** @var $sysFileRepository \KKSoftware\Kkbaybw\Domain\Repository\SysFileRepository */
$sysFileRepository = $om->get('KKSoftware\\Kkbaybw\\Domain\\Repository\\SysFileRepository');
//1
DebuggerUtility::var_dump($this->sysFileRepository->findAll());
//2
DebuggerUtility::var_dump($sysFileRepository->findAll());exit;
}
}
}
------------------------------------------
bei 1 wird ausgeben:
Call to a member function findAll() on null.
bei 2 wird ausgeben:
Table 'typo8.tx_kkbaybw_domain_model_sysfile' doesn't exist
More information about the TYPO3-german
mailing list