也许有人可以为我提供帮助,因为一周以来我一直在挖掘论坛和文档,如何在第三列中显示表格。
我有一个具有以下代码段的CollectionController类:
return $this->render(
'vollmachtapp/pages/collections/list2.html.twig',
[
'attachmentForm' => $attachmentForm->createView(),
'list' => $apiClient->listAllVollmachten()
]
);
attachmentForm看起来像这样:
$attachmentForm = $this->createForm( SimpleAttachmentType::class, $attachment );
这是我的SimpleAttachmentType:
class SimpleAttachmentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('file', FileType::class)
->add('vollmachtId', HiddenType::class)
->add('save', SubmitType::class, ['label' => 'Vollmacht hochladen']);
}
}
现在我正在使用一根看起来像这样的树枝
<table id="datatable" class="table table-striped table-bordered">
<thead>
<tr>
<th>Vollmacht ID</th>
<th>Users</th>
<th>Upload/Download</th>
</tr>
</thead>
<tbody>
{% for collection in list.items %}
<tr>
<td>{{ collection.id }}</td>
<td>
{% for user in collection.users %}
<a href="{{ url('user_detail', {'id': user.id}) }}">
{{ user.name }}
</a><br>
{% endfor %}
</td>
<td>
<a href="{{ url('downloadVollmacht', {'id': user.id}) }}"><button type="button" class="btn btn-sm btn-primary">Download Vollmacht</button></a>
{% if(app.user.role == "admin") %}
<hr>
<div class="text-center mtop20">
{{ form_start(attachmentForm, {method: 'POST'}) }}
{% if not attachmentForm.vars.valid %}
<div class="alert alert-danger alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{ form_errors(attachmentForm.file) }}
</div>
{% endif %}
{{ form_widget(attachmentForm.vollmachtId, {'name': vollmachtId, 'value': collection.id}) }}
{{ form_widget(attachmentForm.file) }}
<br />
{{ form_widget(attachmentForm.save, {attr: {'class': 'btn-left btn btn-sm btn-primary'}}) }}
{{ form_end(attachmentForm) }}
</div>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
我遇到的问题是,表单仅在表的第一行中呈现。有人可以告诉我我做错了什么,必须进行更改才能使其正常工作吗?
感谢和问候, 迈克尔·奥伯斯特
答案 0 :(得分:1)
您的主要问题是,您不能多次分离此form_snippet
{{ form_start(attachmentForm, {method: 'POST'}) }}
您的表格开始和表格结束必须包裹孔表格。如果您还想在所有标签中使用该表格,则不能只用一张写起始表格的树枝片段。您必须编写这样的代码:
<table id="datatable" class="table table-striped table-bordered">
<thead>
<tr>
<th>Vollmacht ID</th>
<th>Users</th>
<th>Upload/Download</th>
</tr>
</thead>
<tbody>
{% for collection in list.items %}
<tr>
{{ form_start(attachmentForm, {method: 'POST'}) }}
<td>{{ collection.id }}</td>
<td>
{% for user in collection.users %}
<a href="{{ url('user_detail', {'id': user.id}) }}">
{{ user.name }}
</a><br>
{% endfor %}
</td>
<td>
<a href="{{ url('downloadVollmacht', {'id': user.id}) }}"><button type="button" class="btn btn-sm btn-primary">Download Vollmacht</button></a>
{% if(app.user.role == "admin") %}
<hr>
<div class="text-center mtop20">
{% if not attachmentForm.vars.valid %}
<div class="alert alert-danger alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{ form_errors(attachmentForm.file) }}
</div>
{% endif %}
{{ form_widget(attachmentForm.vollmachtId, {'name': vollmachtId, 'value': collection.id}) }}
{{ form_widget(attachmentForm.file) }}
<br />
{{ form_widget(attachmentForm.save, {attr: {'class': 'btn-left btn btn-sm btn-primary'}}) }}
</div>
{% endif %}
</td>
{{ form_end(attachmentForm) }}
</tr>
{% endfor %}
</tbody>
</table>
但是也许它会重新构造您的HTML标记。
答案 1 :(得分:0)
您应该看看如何使用symfony文档中的一组表单:
https://symfony.com/doc/current/reference/forms/types/collection.html