Pregunta

Tengo un extraño problema con mi i18n esquema de la doctrina y la inter alia, el generador de administración.

(Por favor, mire la parte inferior a la primera edición)

Las miradas de esquema como:

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 }

El primer problema que tengo con sfForms:

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

Esto genera un conjunto de radio butten con los ID correctos, pero los valores de nombre vacío. Incluso cuando trato de obtener el valor de nombre seleccionando directamente un objeto CargoSize por ID y LANG, getName () siempre devuelve una cadena vacía (la base de datos se llena correctamente con los datos apropiados).

Así es worng somethng con la definición del esquema ??

El segundo problema aparece con el admin-generador:

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

Las miradas generator.yml como:

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:     ~

Lo curioso es que la vista de lista me muestra el nombre i18n. Sin embargo, en vista de edición que siempre sale el error " 'nombre' Reproductor no existe" .

¿Ustedes tienen alguna idea de por qué sucede esto? Estaría muy agradecido por su ayuda.

EDIT:

Creo que el problema se encuentra más profundo, porque este simple código de la paz funciona nota:

En primer lugar los conjuntos de datos para los ejemplos:

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

¿Alguien tiene alguna idea? Estoy muy deperated: (

¿Fue útil?

Solución 2

He encontrado el error. Por alguna razón, el cultivo se establece en " es_ES " en lugar de simplemente "de". Con este ajuste, las cosas comportamiento i18n no funcionaba!

Otros consejos

Primer problema:

Los "valores nombres" mostradas se toman a partir del resultado método __toString (). Se podría añadir las opciones de "método", de esta manera:

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

Segundo problema:

Su forma debe incrustar la forma i18n. Para ello, poner esto en el método configure:

$this->embedI18n($cultures);

donde $ culturas es una matriz de los códigos de culturas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top