Я уже несколько часов ломаю голову, пытаясь найти способ добиться этого: как я могу переопределить форму удаления Symfony2?Переопределение Symfony2 delete form
Когда я называю удаления формы в моем Twig так:
{{ form(delete_form }}
Это фактически делает:
<form name="form" method="post" action="...">
<input type="hidden" name="_method" value="DELETE">
<div id="form">
<div>
<button type="submit" id="form_submit" name="form[submit]">
Delete
</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" value="...">
</div>
</form>
Ok. Я могу изменить контекст «Удалить» с помощью моего контроллера Entity и добавить несколько классов. Хорошо.
<form name="form" method="post" action="...">
<input type="hidden" name="_method" value="DELETE">
<div id="form">
<div>
<button type="submit" id="form_submit" name="form[submit]">
<i class="fa fa-trash"></i>
</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" value="...">
</div>
</form>
Теперь я хочу, чтобы добавить HTML вместо удаления, давайте для экземпляра Font Awesome trash icon. Как я могу это сделать? Фактический HTML будет таким образом:
Я читал Symfony2 cookbook, но я все еще не могу найти способ сделать это. У кого-нибудь есть идея?
Собственно, это почти работает. Теперь у меня есть желаемая кнопка с иконкой корзины. Тем не менее, кнопка удаления (то есть с текстом «Удалить») все еще здесь. Поэтому у меня есть две кнопки вместо одной! –
Просто удалите поле отправки из класса, где вы определяете эту форму. Это поле должно выглядеть как $ builder-> add ('delete,' submit ', array()) –
Неправильная практика удаления кнопок отправки из построителя форм, особенно если у вас несколько кнопок отправки, которые действуют по-разному. Например, вы не можете использовать '$ form-> get ('button_name') -> isClicked();' из вашего контроллера. Возможно, вы захотите [переписать свою тему формы] (http://symfony.com/doc/current/cookbook/form/form_customization.html). –