---
title: "Mit extbase Extension vorhandene Tabellen erweitern und nutzen?"
url: "https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen"
source: "typo3.net"
tags: ["Archiv","Flow","Frage"]
created: "2010-01-21"
last_reply: "2012-07-31"
replies: 15
solved: false
page: 1
pages: 1
lang: "de"
---

# Mit extbase Extension vorhandene Tabellen erweitern und nutzen?

Archiv › Flow · 15 Antworten · gestartet 2010-01-21

## Eröffnungsbeitrag

**typo3typ** · 2010-01-21 · [Beitrag #1](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/1)

Hallo liebe TYPO3ler!

erst einmal ist extbase und fluid super spannend!! :D
Daher versuche ich mich gerade an der Entwicklung einer Ext. mit extbase. Dazu möchte ich die fe_groups Tabelle erweitern bzw. überhaupt erst einmal ansprechen...

Ich habe das so verstanden, dass ich über die Persistenzschicht die DB anspreche - jedoch ist, wenn ich eine Extension entwickle, meine Model Domain ja nicht "fe_..." sondern "tx_...".

Also, kann ich denn aus meiner "tx_.." Domain über die Persistenzschicht überhaupt Tabellen außerhalb meiner Domain ansprechen?
Habe ich etwas komplett übersehen bzw. falsch verstanden, was die Persistenzschicht angeht?

Für einen kleinen Stups in die richtige Richtung wäre ich dankbar!

Beste Grüße aus dem seit 16 Tagen ohne Sonne,trüben, arschkalten, Berlin

## Antworten

### [#2](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/2) · jwitt · 2010-01-21

Wenn Du dir das blog_example anschaust, dann findest du eine Klasse "Tx_BlogExample_Domain_Repository_AdministratorRepository extends Tx_Extbase_Domain_Repository_FrontendUserRepository".
In "ext_base" gibt es neben dem FrontendUserRepository ein FrontendUserGroupRepository und die Klasse Tx_Extbase_Domain_Model_FrontendUserGroup
In diese Richtung solltest Du weiterschauen
Gruß aus Freiburg
Jens

### [#3](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/3) · typo3typ · 2010-01-21

Klasse - vielen Dank. Das scheint genau das zu sein, was ich brauch!

Hätte ich auch mal merken können - habe halt vor allem den Fridgemaster mal nachgebaut :p

Beste Grüße aus (dem ENDLICH wieder) sonnigen Berlin

EDIT:
Ich habe hier im Forum auch noch eine sehr hilfreiche Seite zu der Problemstellung mit einer sehr ausführlichen Anleitung gefunden - Hut ab Stefan - danke für die Arbeit!

<http://typo3.sfroemken.de/>

### [#4](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/4) · froemken · 2010-01-25

jou jou...kein Thema. Danke Dir :-)

Der direkte Link geht hier hin:
<http://typo3.sfroemken.de/index.php?id=81>

In der unteren Hälfte zeige ich eine Art "Mapping" für die Modelnamen und den echten Tabellennamen.

Stefan

### [#5](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/5) · typo3typ · 2010-01-25

Hi froemken,

schickes neues Design! :)

Habe eine Frage zu dem Teil "fe_users und neue Felder" (<http://typo3.sfroemken.de/index.php?id=81>).

Du zeigst, wie Spalten in der erweiterten fe_users Tabelle angesprochen werden.

Das funktioniert auch ganz gut, wenn ich die sr_feuser_register installiere.

Allerdings, sobald ich meine eigene Erweiterung installiere, werden zwar die entsprechenden Spalten der Tabelle hinzugefügt, aber über die User.php kann ich mir z.B. den Vornamen, um den ich fe_users auch erweitere, nicht anzeigen lassen.
Das bleibt immer leer...

Ich habe, weil es ja noch keinen fertigen Kickstarter für extbase gibt, die ext_tables.php selbst geschrieben, und im BE werden mir im Benutzerdatensatz auch alle Felder angezeigt.

Habe mir auch die sr_feuser_reigster angeschaut, und nach etwas gesucht, was ich noch übersehen haben könnte. Jedoch komme ich zu keinem Ergebnis.

Irgendetwas macht die Installation der "sr_feuser_register" was meine Ext. nicht macht ... aber was? Was könnte ich noch übersehen haben?

Beste Grüße

### [#6](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/6) · froemken · 2010-01-25

Du hast Deine Spalte "FirstName" genannt. Aber in der User.php steht auch FirstName. Ich habe in meiner Doku gezeigt, dass der Bindestrich von first_name bei extbase verschwindet und dafür der Rest des Namens am Anfang großgeschrieben werden muss.

Deine Angabe "FirstName" in der User.php wird von extbase also in den Spaltennamen: first_name umgewandelt. Geht also nicht.

Also musst du setFirstname und getFirstname in die User.php reinschreiben.

### [#7](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/7) · cse · 2010-09-07

Wie komme ich denn auf andere Tabellen?

Ich habe greife übers Backend mit meiner Extension auf tx_dam_cat zu und biete die Möglichkeit eine Kategorie auszuwählen.

Wie kann ich davon nun anschließend den Namen ausgeben? In der Tabelle wird die ID der Kategorie gespeichert ich komm nur mit dem Mapping nicht so richtig zurecht ... oder muss ich da gar nicht mappen?

Bin für Hilfe sehr dankbar!!

### [#8](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/8) · jimmykimmy · 2011-08-12

Ich muss diesen Thread nochmal wiederbeleben^^
Ich habe froemkens Tutorial durchgearbeitet, da ich mir auch die Benutzer PLUS eine weitere (von mir angelegte Spalte) anzeigen lassen möchte!

Die User werden mir alle angezeigt, allerdings nicht die Extrafelder.

In der DB habe ich die Tabelle "fe_users" und ein VARCHAR Feld "points" erweitert (das es INT sein sollte, sei mal dahingestellt). Im Model (User.php) habe ich die Variable "points" mit getter & setter ebenfalls angelegt.
Wenn ich nun aber mein Repository nach findAll() befrage, erhalte ich zwar die korrekten User (wenn ich einen User debugge sehe ich ebenfalls die Spalte "point" im Objekt), allerdings ist der Wert "point" immer leer.
Was könnte ich da falsch gemacht haben? Habe sonst alles wie auf froemkens Seite beschrieben gemacht!

Kann zur not auch nochmal Quellcode posten.

### [#9](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/9) · froemken · 2011-08-12

In Deiner User.php muss die Klasse xxx_Domain_Model_User von der Extbase Klasse xxx_Extbase_Domain_Model_FeUsers erben.

In Deiner User.php müssen die getter und setter für Dein neues Feld eingetragen werden.

Über Configuration/TypoScript/setup.txt muss Extbase mitgeteilt werden, dass Deine Klasse xxx_Domain_Model_User auf die Tabelle fe_users gemapped werden soll:

Ohne Gewähr...da aus dem Kopf:
persistence.classes.Tx_xxx_Domain_Model_User.mapping.tableName = fe_users

Stefan

### [#10](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/10) · jimmykimmy · 2011-08-12

hey froemken, danke für die schnelle Antwort. So habe ich das alles gemacht! Ich habe auch den Eintrag in der setup.txt vorgenommen und sehe es im ObjectBrowser auch, es ist also dort auch korrekt eingetragen.

So sehen meine 3 Dateien aus:

"User.php"

```php
<?php
class Tx_Myext_Domain_Model_User extends Tx_Extbase_Domain_Model_FrontendUser {
    
    /**
     * @var string
     */
    protected $point;

    /**
     * Sets the point value
     *
     * @param string $point
     * @return void
     * @api
     */
    public function setPoint($point) {
        $this->point = $point;
    }

    /**
     * Returns the point value
     *
     * @return string
     */
    public function getPoint() {
        return $this->point;
    }
}
?>
```

UserController.php

```php
<?php
class Tx_Myext_Controller_UserController extends Tx_Extbase_MVC_Controller_ActionController {

    /**
     * @var Tx_Extbase_Domain_Repository_FrontendUserRepository
     */
    protected $userRepository;
    
    /**
     * Initializes the current action
     *
     * @return void
     */
    public function initializeAction() {
        $this->userRepository = t3lib_div::makeInstance('Tx_Myext_Domain_Repository_UserRepository');
    }
    
    /**
     * List action for this controller. Displays a list of users
     *
     * @return string The rendered view
     */
    public function listAction() {
        $this->view->assign('users', $this->userRepository->findAll());
    }
}
?>
```

UserRepository.php

```php
<?php
class Tx_Myext_Domain_Repository_UserRepository extends Tx_Extbase_Persistence_Repository {

}
?>
```

Die Spalte in der "fe_users" habe ich wie gesagt per Hand als VARCHAR einegtragen.

### [#11](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/11) · froemken · 2011-08-12

ersetz den initializeAction-Part durch Folgendes:

```php
/**
* @param Tx_Myext_Domain_Repository_UserRepository $userRepository
*/
public function injectUserRepository(Tx_Myext_Domain_Repository_UserRepository $userRepository) {
 $this->userRepository = $userRepository;
}
```

Schau Dir auch mal das blog_example an, da ist auch nicht mehr von diesen initializeActions mehr zu sehen.

Stefan

### [#12](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/12) · jimmykimmy · 2011-08-12

Das hat leider nichts geändert.
Ich habe mal das userObjekt gedebuggt:

```html
Object:
Tx_Myext_Domain_Model_User Object
(
    [point:protected] => 
    [username:protected] => myextuser
    [password:protected] => myextuser
    [usergroup:protected] => Tx_Extbase_Persistence_ObjectStorage Object
        (
            [warning:Tx_Extbase_Persistence_ObjectStorage:private] => You should never see this warning. If you do, you probably used PHP array functions like current() on the Tx_Extbase_Persistence_ObjectStorage. To retrieve the first result, you can use the rewind() and current() methods.
            [storage:protected] => Array
                (
                )

            [isModified:protected] => 
        )

    [name:protected] => 
    [firstName:protected] => 
    [middleName:protected] => 
    [lastName:protected] => 
    [address:protected] => 
    [telephone:protected] => 
    [fax:protected] => 
    [email:protected] => 
    [lockToDomain:protected] => 
    [title:protected] => 
    [zip:protected] => 
    [city:protected] => 
    [country:protected] => 
    [www:protected] => 
    [company:protected] => 
    [image:protected] => 
    [lastlogin:protected] => 
    [isOnline:protected] => 
    [uid:protected] => 6
    [_localizedUid:protected] => 6
    [_languageUid:protected] => 
    [pid:protected] => 21
    [_isClone:Tx_Extbase_DomainObject_AbstractDomainObject:private] => 
    [_cleanProperties:Tx_Extbase_DomainObject_AbstractDomainObject:private] => Array
        (
            [point] => 
            [username] => myextuser
            [password] => myextuser
            [usergroup] => Tx_Extbase_Persistence_ObjectStorage Object
                (
                    [warning:Tx_Extbase_Persistence_ObjectStorage:private] => You should never see this warning. If you do, you probably used PHP array functions like current() on the Tx_Extbase_Persistence_ObjectStorage. To retrieve the first result, you can use the rewind() and current() methods.
                    [storage:protected] => Array
                        (
                        )

                    [isModified:protected] => 
                )

            [name] => 
            [firstName] => 
            [middleName] => 
            [lastName] => 
            [address] => 
            [telephone] => 
            [fax] => 
            [email] => 
            [lockToDomain] => 
            [title] => 
            [zip] => 
            [city] => 
            [country] => 
            [www] => 
            [company] => 
            [image] => 
            [lastlogin] => 
            [isOnline] => 
            [uid] => 6
            [pid] => 21
        )

)
```

wie man sieht hat er "point" dort bereits aufgelistet.

### [#13](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/13) · froemken · 2011-08-12

Ahhh...hab's evtl. gefunden:

In der Annotation von $userRepository (UserController.php) steht noch das Orig. Repository von Extbase und nicht das Repository Deiner Extension.

### [#14](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/14) · jimmykimmy · 2011-08-16

Hey froemken!
Sorry für die verspätete Antwort, aber leider hat auch das nichts an dem Problem geändert :-( Ich verstehe es einfach nicht :-(

### [#15](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/15) · typo3typ · 2011-08-16

> **jimmykimmy schrieb:**
>
> Ich muss diesen Thread nochmal wiederbeleben^^
> Ich habe froemkens Tutorial durchgearbeitet, da ich mir auch die Benutzer PLUS eine weitere (von mir angelegte Spalte) anzeigen lassen möchte!
>
> Die User werden mir alle angezeigt, allerdings nicht die Extrafelder.
>
> In der DB habe ich die Tabelle "fe_users" und ein VARCHAR Feld "points" erweitert (das es INT sein sollte, sei mal dahingestellt). Im Model (User.php) habe ich die Variable "points" mit getter & setter ebenfalls angelegt.
> Wenn ich nun aber mein Repository nach findAll() befrage, erhalte ich zwar die korrekten User (wenn ich einen User debugge sehe ich ebenfalls die Spalte "point" im Objekt), allerdings ist der Wert "point" immer leer.
> Was könnte ich da falsch gemacht haben? Habe sonst alles wie auf froemkens Seite beschrieben gemacht!
>
> Kann zur not auch nochmal Quellcode posten.

Hmmm, das hört sich nach nem TCA Problem an. Ist Deine Erweiterung mit dem Extension Builder erstellt? Oder haste das zu Fuß gemacht?

Ich würde mal das TCA checken....

Grüße

### [#16](https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen/16) · Ronald · 2012-07-31

Ich hab hier mal noch was gefunden, was das Problem für mich gelöst hat:

[http://www.typo3-nürnberg.de/typo-v5/extbase/erstellen-einer-extension/](http://www.xn--typo3-nrnberg-2ob.de/typo-v5/extbase/erstellen-einer-extension/)

Allerdings macht das der Extension Manager von selbst. Aber den wollte ich auch nicht nutzen, weil der mir sonst was überschreibt und so.

Schritt zusammengefasst:
- Domain anpassen (Variable, get, set)
- ext_tables.sql
- Sprachdatein
- ext_tables.php (und hier sind entscheidene Schritte für das TCA: $tmp_DOMAIN_columns um die Spalten erweitern, und ebenfalls bei $TCA['fe_users']['types']['DOMAIN']['showitem'] .= 'SPALTE';)

Jetzt klappts bei mir, dass das sowohl in den Templates auftaucht, als auch die Spalte unter Erweitert im BE gesetzt werden kann.

---

Quelle: „Mit extbase Extension vorhandene Tabellen erweitern und nutzen?“, typo3.net, https://www.typo3.net/d/96053-mit-extbase-extension-vorhandene-tabellen-erweitern-und-nutzen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
