J'ai un problème étrange avec mon schéma de doctrine i18n et i.a. le générateur d'administration.Symfony 1.4: Doctrine i18n questions de générateur
(S'il vous plaît regarder la partie d'édition ci-dessous la première)
Le schéma ressemble à:
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 }
Le premier problème que j'ai avec sfForms:
new sfWidgetFormDoctrineChoice(array('model' => 'CargoSize', 'expanded' => true, 'multiple' => false), array('style' => 'list-style-type: none; display: inline;'))
Cela génère un ensemble radio butten avec les ID corrects, mais les valeurs de nom vides. Même lorsque j'essaie d'obtenir la valeur du nom en sélectionnant directement un objet CargoSize par ID et LANG, getName() renvoie toujours une chaîne vide (le DB est rempli correctement avec des données appropriées).
Alors est-il usé avec la définition du schéma ??
Le deuxième problème apparaît avec l'administrateur générateur:
php symfony doc:generate-admin --module=cargo_size admin CargoSize
Le generator.yml ressemble:
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 chose drôle est, que la vue de la liste me montre le i18n prénom. Mais en vue d'édition, je reçois toujours l'erreur "nom du widget 'n'existe pas".
Avez-vous une idée de ce qui se passe? Je serais très reconnaissant pour votre aide.
EDIT:
Je pense que le problème se trouve plus profond, parce que ce simple paix de code ne fonctionne note:
D'abord les ensembles de données pour les exemples:
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
Est-ce que quelqu'un a une idée? Je suis vraiment deperated :(
C'est marrant, le toString que j'avais déjà. Mais maintenant, après l'ajout de l'embedI18n, tous les problèmes semblent être résolus, non seulement dans le sfForm, aussi dans la forme des lieux indépendants O_o. Donc, beaucoup pour cet indice :) – ownking
Le problème malheureusement toujours existe, je ne sais pas pourquoi, mais quand je veux obtenir l'attribut de nom avec: $ cargo_size-> getName(); // (Les valeurs sont dans la base de données pour chaque langue) Renvoie une chaîne vide. Avez-vous plus d'idées sur ce que pourrait être le problème? – ownking