У меня есть странная проблема с моей схемой доктрины i18n и i.a. генератор админ.Symfony 1.4: проблемы с генерацией i18n доктрины
(Пожалуйста, смотрите на редактирования части ниже первого)
Схема выглядит так:
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 }
Первая проблема у меня с sfForms:
new sfWidgetFormDoctrineChoice(array('model' => 'CargoSize', 'expanded' => true, 'multiple' => false), array('style' => 'list-style-type: none; display: inline;'))
Это создает набор радиоприемников с правильные идентификаторы, но пустые значения имени. Даже когда я пытаюсь получить значение имени, напрямую выбрав объект CargoSize по ID и LANG, getName() всегда возвращает пустую строку (DB заполняется правильно с подходящими данными).
Так что-то изношенное с определением схемы ??
Вторая проблема возникает с админ-генератора:
php symfony doc:generate-admin --module=cargo_size admin CargoSize
generator.yml выглядит следующим образом:
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: ~
Самое смешное, что представление списка показывает мне i18n имя. Но в режиме редактирования я всегда получаю ошибку «Виджет» имя «не существует».
У вас есть идеи, почему это происходит? Я был бы очень благодарен за вашу помощь.
EDIT:
Я думаю, что проблема сидит глубже, потому что это просто мир кода делает примечание работу:
Первые наборы данных для примеров:
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
ли кто-то есть Есть идеи? Я действительно deperated :(
Это смешно, toString у меня уже было. Но теперь, добавив embedI18n, все проблемы, похоже, решаются не только в sfForm, но и в форме независимо места O_o. Так что много для этого намека :) – ownking
Проблема, к сожалению, все еще exsits, я не знаю почему, но когда я хочу получить атрибут name с помощью: $ cargo_size-> getName(); // (Значения находятся в БД для каждого langugae) Он возвращает пустую строку. У вас есть больше идей, в чем проблема? – ownking