Frage

Ich habe ein seltsames Problem mit meinem i18n Lehre Schema und u.a. der Admin-Generator.

(Bitte schauen Sie auf das Bearbeitungsteil unten zuerst)

Das Schema sieht aus wie:

CargoSize:
  connection: doctrine
  actAs:
    Timestampable:      ~
    I18n:
      fields:                   [name, linkname, seoname, description]
  tableName: com_cargo_size
  columns:
    id:                                     { type: integer(11), notnull: true, unsigned: true, primary: true, autoincrement: true }
    name:                                   { type: string(50),  notnull: true }
    linkname:                               { type: string(100), notnull: true }
    seoname:                                { type: string(100), notnull: true }
    description:                            { type: string(255), notnull: true }

Das erste Problem, das ich mit sfForms habe:

new sfWidgetFormDoctrineChoice(array('model' => 'CargoSize', 'expanded' => true, 'multiple' => false), array('style' => 'list-style-type: none; display: inline;'))

Dies erzeugt einen Radio Butten Satz mit der richtigen IDs, aber leeren Namen Wert. Auch wenn ich versuche, den Namen Wert zu erhalten, indem direkt ein CargoSize Objekts von ID und LANG, getName () immer einen leeren String zurück Auswahl (die DB korrekt mit geeigneten Daten gefüllt ist).

So ist somethng worng mit der Schema-Definition ??

Das zweite Problem scheint mit dem Admin-Generator:

php symfony doc:generate-admin --module=cargo_size admin CargoSize

Die generator.yml sieht aus wie:

generator:
  class: sfDoctrineGenerator
  param:
    model_class:           CargoSize
    theme:                 admin
    non_verbose_templates: true
    with_show:             false
    singular:              ~
    plural:                ~
    route_prefix:          cargo_size
    with_doctrine_route:   true
    actions_base_class:    sfActions

    config:
      actions: ~
      fields:  ~
      list:
        display: [name, lang]
      filter:  ~
      form:    ~
      edit:
        display: [name]
      new:     ~

Das Komische ist, dass die Listenansicht zeigt mir den i18n Namen. Aber in der Bearbeitungsansicht ich immer die Fehler "Widget 'name' existiert nicht" .

Do haben euch eine Ahnung, warum dies geschieht? Ich würde für Ihre Hilfe sehr dankbar sein.

BEARBEITEN:

Ich denke, das Problem liegt tiefer, weil dieser einfache Frieden Code nicht beachten Arbeit:

Zuerst werden die Datensätze für die Beispiele:

cargo_size
id  created_at              updated_at
1   2010-04-22 21:37:44     2010-04-22 21:37:44

cargo_size_translation
id      name    linkname    seoname     description     lang
1       klein   klein       klein       klein           de
1       small   small       small       small           en

$c = Doctrine::getTable('CargoSize')->findOneBy('id', 1); 
echo $c;  // (toString exists)

// Output: Catchable fatal error: Method CargoSize::__toString() 
// must return a string value in 
// /var/www/.../apps/frontend/modules/start/templates/indexSuccess.php on line 1

echo $c->getName();
// Output: nothing

hat Does jemand eine Idee? Ich bin wirklich deperated: (

War es hilfreich?

Lösung 2

fand ich den Fehler. Aus irgendeinem Grund wurde die Kultur auf „ de_DE “ statt nur „de“. Damit die i18n Verhalten Sachen Einstellung hat nicht funktioniert!

Andere Tipps

Erstes Problem:

Der „Namen Wert“ angezeigt werden, aus dem __toString () -Methode Ergebnis genommen. Sie könnten die „Methode“ Optionen hinzufügen, wie folgt aus:

new sfWidgetFormDoctrineChoice(array('model' => 'CargoSize', 'expanded' => true, 'multiple' => false, 'method' => 'getName'), array('style' => 'list-style-type: none; display: inline;'))

Zweites Problem:

Das Formular muss betten die i18n Form. Um dies zu tun, setzen Sie diese in der configure-Methode:

$this->embedI18n($cultures);

Dabei steht $ Kulturen ist ein Array Ihrer Kulturen Codes.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top