[TYPO3-german] Extbase - createQuery - statement Problem
Christian Leicht
usenet at schani.com
Wed Mar 11 09:35:55 CET 2015
Hallo Silke,
ja ich habe auch die fe_users um 3 Felder erweitert. Das klappt auch gut.
Ich habe mir Deinen Vorschlag angeschaut und er leuchtet mir auch ein,
aber es läuft nicht.
Wenn ich im Repository folgendes einfüge:
/**
* The repository for Users
*/
class UsersRepository extends
\TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository {
public function showFeuser($userid){
$query = $this->createQuery();
$query->statement("SELECT * FROM fe_users WHERE uid = '".$userid."'");
return $query->execute();
}
}
Bekomme ich folgende Fehlermeldung:
Fatal error: Class
'WWL\WwlFeuserfiles\Domain\Repository\WwlfeuserfilesRepository' not
found in
/home/httpd/test/typo3/typo3_src-6.2.10/typo3/sysext/core/Classes/Utility/GeneralUtility.php
on line 4442
Irgend was stimmt da mit den Namespaces nicht, glaube ich
Christian
Am 10.03.2015 um 14:42 schrieb Silke Capo:
> Hallo Christian,
>
> ich wollte auch einen Zugriff auf die fe_users haben. In meiner
> Extension musste ich dazu folgende Schritte vornehmen:
>
> Unter Domain/Models ein Model angelegt (weil ich zusätzliche Felder
> genutzt habe:
> /**
> * User Model
> *
> * * @validate StringLength(minimum=6, maximum=15)
> *
> */
> class Users extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
>
> /**
> * @var string
> */
> protected $passwordOld = '';
>
> ...
>
> /**
> * __construct
> */
> public function __construct() {
> parent::__construct();
> }
>
> /**
> * Sets the $passwordOld value
> *
> * @param string $passwordOld
> * @return void
> * @api
> */
> public function setPasswordOld($passwordOld) {
> $this->passwordOld = $passwordOld;
> }
>
> /**
> * Returns the $passwordOld value
> *
> * @return string
> * @api
> */
> public function getPasswordOld() {
> return $this->passwordOld;
> }
>
> ...
>
> }
>
> Wichtig hier: von Frontenduser ableiten, nicht von der allgemeinen Klasse.
>
> Deine zusätzlichen Felder als Variablen, + getter und setter.
>
> Dann das Repository:
> /**
> * The repository for Users
> */
> class UsersRepository extends
> \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository {
> ...
> }
>
> Hier musst du nur dann etwas eintragen, wenn du spezielle
> Datenbankabfragen brauchst, die normalen wie "findAll" funktionieren
> automatisch. Auch hier wieder von FrontendUser ableiten!
>
> Dann unter Configuration/TypoScript noch das Mapping:
> in setup.txt:
> config.tx_extbase {
> persistence {
> classes {
> DigitalWorx\DxSpecialistsearch\Domain\Model\Users {
> mapping {
> tableName = fe_users
> recordType =
> }
> }
> }
> }
> }
>
> plugin.tx_dxspecialistsearch {
> persistence {
> classes {
>
> DigitalWorx\DxSpecialistsearch\Domain\Model\User {
> mapping {
> tableName = fe_users
> }
> }
> }
> ...
> }
> ...
> }
>
> In ext_tables.php:
>
> /**
> * Table configuration fe_users
> */
> $tempColumns = array (
> 'password_old' => array (
> 'exclude' => 1,
> 'label' =>
> 'LLL:EXT:dx_specialistsearch/Resources/Private/Language/locallang_db.xlf:fe_users.password',
>
> 'config' => array (
> 'type' => 'input',
> 'size' => 30,
> 'eval' => 'string',
> 'readOnly' => 1,
> 'default' => ''
> )
> ),
> );
> $fields = 'password_old';
>
> \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA('fe_users');
>
> if (version_compare(TYPO3_branch, '6.2', '<')) {
> \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tempColumns, 1);
> } else {
> \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users', $tempColumns);
> }
>
> so hat es bei mir geklappt.
>
> VG Silke
>
> On 10.03.2015 14:12, typo3-german-request at lists.typo3.org wrote:
>> Message: 9
>> Date: Tue, 10 Mar 2015 13:24:18 +0100
>> From: Christian Leicht<usenet at schani.com>
>> Subject: [TYPO3-german] Extbase - createQuery - statement Problem
>> To:typo3-german at lists.typo3.org
>> Message-ID:<mailman.7264.1425990285.623.typo3-german at lists.typo3.org>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> Hallo,
>> ich hab noch ne Frage zu meinem gestrigen Problem. Will aber nicht
>> wieder ?ber Extbase herziehen;-) Deswegen ein neuer Post
>>
>> Also, ich muss in einer Extension auf die fe_user DB zugreifen. Dazu
>> habe ich mir in meiner extension im repository Ordner
>
More information about the TYPO3-german
mailing list