Встроенные поля формы Symfony 1.4 в том же отступе

У меня две модели в приложении Symfony. Первый – это блог:

Blog: columns: name: { type: string(20), notnull: true, unique: true } title: { type: string(255), notnull: true } description: { type: string(255), notnull: true } admin_id: { type: bigint, notnull: true } relations: User: class: sfGuardUser local: admin_id ... 

Как видите, эта модель имеет отношения «один к одному» с sfGuardUser. Я хочу, чтобы регистрация этих двух состоялась в одной форме.

Поэтому я изменил класс BlogForm и использовал в нем метод embeddedRelation . Таким образом, две формы появляются вместе. Проблема в их взгляде! Форма регистрации пользователя (которая встроена в BlogForm) кажется ребенком! Я не хочу этого … Я хочу, чтобы поля были в том же отступе.

Мой вид формы выглядит следующим образом:

Мой текущий вид

Но я хочу что-то вроде этого:

введите описание изображения здесь

Каков наилучший способ сделать это? Связано ли это с FormFormatter?

Вы проверяете sfWidgetFormSchemaFormatter или render * ?

Я дал ответ на что-то, что почти связано здесь . И я думаю, что это почти та же проблема, что и здесь: Удаление заголовков таблиц из embedRelation ()

Я думаю, что лучший способ – вручную создать форму в шаблоне с помощью sfWidgetFormSchemaFormatter или render *.


Редактировать:

Относительно того, что я здесь ответил, попробуйте добавить собственный форматировщик, подобный этому (в lib/widget/sfWidgetFormSchemaFormatterAc2009.class.php ):

 class sfWidgetFormSchemaFormatterAc2009 extends sfWidgetFormSchemaFormatter { protected // this will remove table around the embed element $decoratorFormat = "%content%"; public function generateLabel($name, $attributes = array()) { $labelName = $this->generateLabelName($name); if (false === $labelName) { return ''; } // widget name are usually in lower case. Only embed form have the first character in upper case if (preg_match('/^[AZ]/', $name)) { // do not display label return ; } else { return $this->widgetSchema->renderContentTag('label', $labelName, $attributes); } } } 

Затем добавьте его в свою форму в ProjectConfiguration :

 class ProjectConfiguration extends sfProjectConfiguration { public function setup() { // ... sfWidgetFormSchema::setDefaultFormFormatterName('ac2009'); } } 

(информация поступает с веб-сайта sf )

Если это не сработает, добавьте var_dump($name); перед if (preg_match и добавьте вывод к вашему вопросу.