2017-01-07 2 views
-1

Zunächst einmal Hallo an alle und danke für Ihre Aufmerksamkeit. Ich mache eine Anwendung mit symfony. Ich benutze LanguageType, um ein Feld in meinem Formular mit einer großen Anzahl von Sprachen zu generieren, wo der Benutzer einen von ihnen auswählen muss. Das Problem mit LanguageType ist, dass ich nur die Sprachkennung in meiner Datenbank hinterlasse. Zum Beispiel, wenn ich Englisch wähle, wird es in meinem DB "en" gespeichert, und ich muss den vollen Namen speichern. Gibt es einen Weg, es zu tun?LanguageType in einer Form

Vielen Dank für die Aufmerksamkeit wieder.

Antwort

0

Sie können das ChoiceType-Feld in der FormType-Klasse verwenden und alle Sprachen laden, die Sie benötigen. Überprüfen Sie here auf benutzerdefinierte Schlüssel/Wert-Paare in Ihren Auswahlmöglichkeiten.

Aber im Allgemeinen denke ich, dass es eine schlechte Idee ist, da Sie eine Übersetzung eines Sprachnamens speichern werden. Wenn Sie den Sprachcode speichern, können Sie damit machen, was Sie wollen, wenn sie abgerufen wird

Intl::getLanguageBundle()->getLanguageName('en') 
+0

Sie hatten Recht. Ich mache die Übersetzung, bevor ich das Datum in die Datenbank schreibe. Danke! –

0

Ich gehe davon aus, dass Sie das Intl-Bundle verwenden können, wenn es kein Problem ist, wie sie gespeichert werden. Aber Sie könnten immer dies verwenden, um die Ländercodes von GB -> Großbritannien

so konvertieren, was Sie tun, ist alle Länder speichern sie in einer Variablen dann verwenden Sie den unten stehenden Code, um es in einen vollständigen Namen zu konvertieren. Verwenden Sie diese Option, um Codes in den vollständigen Namen umzuwandeln, und teilen Sie dem Formular mit, dass diese zur Auswahl stehen.

+0

Danke für Sie antworten, aber die Sache ist, ich speichere Sprachen, nicht Länder. In meiner Anwendung verwende ich LanguageType in einem Formular, um eine Liste der Sprachen anzuzeigen, aber mit LanguageType Ich speichere nur den Identifikator der Sprache in meiner Datenbank und ich muss den gesamten Sprachnamen speichern. –

+0

wow Entschuldigung mein Schlechte falsch gelesen es wie @nilsM sagte Intl :: getLanguageBundle() -> getLanguageName ('en') – KevinTheGreat

Verwandte Themen