Domanda

Ho un problema strano con il mio schema dottrina i18n e i.a. generator.

(Si prega di guardare la parte modifica sotto prima)

L'aspetto dello schema del tipo:

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 }

Il primo problema che ho con sfForms:

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

Questo genera un apparecchio radio butten con gli ID corretti, ma valori dei nomi vuoti. Anche quando cerco di ottenere il valore del nome selezionando direttamente un oggetto CargoSize per ID e LANG, getName () restituisce sempre una stringa vuota (DB viene riempito correttamente con i dati adatto).

Quindi è worng somethng con la definizione dello schema ??

La seconda appare problema con l'admin-generatore:

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

L'aspetto generator.yml come:

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

La cosa divertente è, che la vista della lista mi mostra il nome i18n. Ma in Vista di modifica ottengo sempre l'errore di " 'nome' widget di non esiste" .

voi ragazzi avete qualche idea del perché questo accade? Sarei molto grato per il vostro aiuto.

Modifica

Credo che il problema si trova più profondo, perché questo semplice pace del codice funziona Nota:

In primo luogo i set di dati per gli esempi:

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

C'è qualcuno che ha qualche idea? Sono davvero deperated: (

È stato utile?

Soluzione 2

Ho trovato il bug. Per qualche ragione la cultura è stata impostata su " de_DE " invece di "de". Con questa impostazione la roba comportamento i18n non ha funzionato!

Altri suggerimenti

Primo problema:

I "nomi" valori visualizzati sono prese dal __toString () risultato metodo. Si potrebbe aggiungere le opzioni di "metodo", in questo modo:

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

Secondo problema:

Il modulo deve incorporare il form i18n. Per fare questo, mettere questo nel metodo di configurazione:

$this->embedI18n($cultures);

dove $ culture è un array dei vostri codici di culture.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top