你面临的问题是,当你的webapp
POST
S到后端,它只发送“表单”数据。
这意味着无论您需要发送回什么数据,您都需要在HTML中包含
form
使用表单元素的标记(即:输入、选择、隐藏等)。在cakephp模板中,您将使用
Form
帮助打印出这些元素。
在这个具体的例子中,您正在创建一个隐藏的
id
元素和复选框元素。复选框元素的值来源于它们是否被选中,并且这个值是1或0…从你的经历来看,这似乎是正确的。
请告诉我们您需要什么
柱
ED数据看起来像,所以我们可以提供更好的答案。
一些更一般的建议是从根本上解决问题:
-
尝试查看客户端中生成的HTML(浏览器、查看源代码)
-
使用浏览器的检查器(或开发工具)来反省网络调用,并查看什么是数据
柱
ED到后端
编辑
:
当表单绑定到实体时,需要将此实体作为
$this->Form->create($entity, ...)
打电话。在您的示例中,您提供的是字符串,而不是实体。
查看用于在表单中保存关联数据的文档:
https://book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data
<tbody>
<?php foreach ($taskElements as $id => $taskElement): ?>
<tr>
<td><?= $this->Number->format($taskElement->id) ?></td>
<?= $this->Form->hidden("task.$id.id",['value' => $taskElement->id]); ?>
<?= $this->Form->hidden("task.$id.name",['value' => $taskElement->name]); ?>
<td><?= $this->Form->control("task.$id.checked", ['type' => 'checkbox']);?></td>
<td><?= $taskElement->element_category_id != 0 ? $this->Html->link($taskElement->element_category->name, ['controller' => 'ElementCategories', 'action' => 'view', $taskElement->element_category->id]) : '' ?></td>
</tr>
<?php endforeach; ?>
</tbody>