Deutsche Umlaute äöüÄÖÜ gii CRUD Generator

Hallo zusammen,

zurzeit versuche ich ein Studienprojekt mit dem yii Framework umzusetzen.

Dabei bin ich gleich am Anfang auf das Problem gestoßen, dass ich mit gii keine Models und CRUD Klassen mit Tabellennamen erzeugen kann, welche deutsche Umlaute (äöüÄÖÜ) im Namen haben. Siehe Screenshot.

Diese wären für mein Projekt aber wichtig (z. B. Tabelle Warenschäden, oder Spalte Prävention).

WICHTIG: Bei der Eintragung von Daten funktionieren die Wörter mit Umlauten ohne Probleme, die Datenbank und Datenbankanbindung ist natürlich alles utf8 encoded.

Es funktioniert nur bei den Tabellen- und Spaltennamen nicht.

Ich habe schon einiges probiert und das Forum durchsucht, leider alles erfolglos (z. B. Apache, PHP, usw. alles auf UTF-8 gestellt usw.). Falls ich etwas übersehen habe, dann bitte kurzen Hinweis.

Habe auch schon versucht die validation (preg_match usw.) zu ändern (beim gii generator sowie in der baseHTML, da hier die Fehler darauf verwiesen haben). Habe mir gedacht, vielleicht reicht es diese einfach zu ändern, leider auch ohne Erfolg. (Siehe Codesnippet)

vendor/yiisoft/yii2-gii/generators/model/Generator.php :




            [['db', 'modelClass', 'queryClass'], 'match', 'pattern' => '/^\w+$/', 'message' => 'Only word characters are allowed.'],

            [['ns', 'baseClass', 'queryNs', 'queryBaseClass'], 'match', 'pattern' => '/^[\w\\\\]+$/', 'message' => 'Only word characters and backslashes are allowed.'],

            [['tableName'], 'match', 'pattern' => '/^([\w ]+\.)?([\w\* ]+)$/', 'message' => 'Only word characters, and optionally spaces, an asterisk and/or a dot are allowed.'],



Beispiel aus vendor/yii2/helpers/baseHTML :




    public static function getAttributeName($attribute)

    {

        if (preg_match('/(^|.*\])([\w\.]+)(\[.*|$)/', $attribute, $matches)) {

            return $matches[2];

        } else {

            throw new InvalidParamException('Attribute name must contain word characters only.');

        }

    }



Die GermanCrudCommand extension wollte ich noch versuchen, scheitere aber gerade an der Anbindung. Löst das evtl. mein Problem, hat damit schon jemand gearbeitet?

Wenn ja wie kann ich die in dem basic yii Projekt einbinden und aufrufen?

Hatte jemand hier schon das gleiche Problem und kann mir helfen?

Ich arbeite mit dem MAMP Server, php 5.6.10, MySQL 5.5.42, Apache 2.2.29 und der Yii Version 2.0.10 mit dem basic Paket.

IDE -> PHPStorm

Ich danke euch schon mal im Voraus!

Grüße

Coby

Ich kann dir nur dringend dazu raten, bei Tabellen und Feldern keine Umlaute zu verwenden, du handelst dir damit nur Probleme ein.

Außerdem würde ich bei Yii und anderen ähnlichen Frameworks immer englische Tabellennamen verwenden, sonst wird es mit der Pluralbildung recht hässlich.

Danke für die Antwort. Hab ich auch schon öfters gelesen, dass Umlaute in Tabellen Probleme machen können. Ist vielleicht wirklich sinnvoll. Eventuell mach ich es dann so, dass ich die Tabellennamen noch über die Internationalisierung später noch ändere oder so.

Aber es muss definitiv alles auf Deutsch sein.

Wenn es unbedingt auf Deutsch sein muss, benutz wenigstens "ae" anstatt "ä", etc.

Sonderzeichen sind die Welt des Schmerzes :slight_smile:

Werd ich machen, Danke.