如何在管理页面中编辑关联表格?

时间:2013-06-13 23:41:22

标签: cakephp

我们的数据库中有两个表对这个问题非常重要。在订单中,我们有以下字段:

ID, account_id, sale_id, site_id, pending, order_date

另一个相关表orders_product_types是一个包含

的关联表
order_id, product_id, quantity

Cake最初为管理页面添加了一个管理页面,以便按照您的预期运行。但是,客户要求我们在相同的orders.admin_edit页面上添加编辑与销售相关联的每种产品的数量的功能,以及在admin_view页面上查看产品。我已经设法使用以下代码显示视图页面(尽管以不恰当的方式)。对于控制器,我添加了

$order = $this->Order->findById($id);
    $this->recursive = 1;

到控制器并将其包含在集合中,然后在视图页面上显示它们:

<?php foreach ($order['ProductType'] as $productType){
            echo $productType['type'];
            echo $productType['OrdersProductType']['quantity'];?>
            <br></br>
            <?
        }?>

然而,现在我仍然坚持如何以蛋糕形式进行编辑。理想情况下,我想找到一种方法,使用适当的蛋糕功能,但我仍然是新的,我仍在弄清楚一切是如何工作的。表单的相关部分允许他们编辑订单的信息,如下所示:

<?php echo $this->Form->create('Order'); ?>
<fieldset>
    <legend><?php echo __('Edit Order'); ?></legend>
<?php
    echo $this->Form->input('id');
    echo $this->Form->input('account_id');
    echo $this->Form->input('sale_id');
    echo $this->Form->input('site_id');
    echo $this->Form->input('pay later');
    echo $this->Form->input('order_date');
    echo $this->Form->input('Coupon');
    echo $this->Form->input('ProductType');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>

理想情况下,我想找到一些方法来遵循这种语法,但要包含关联表orders_product_types中的字段,以便他们可以直接在此表单中编辑数量。我如何在蛋糕结构中加入第二张表?

1 个答案:

答案 0 :(得分:0)

我无法找到像我正在寻找的蛋糕语法“正确”做到这一点的方法,但我最终通过在视图中插入一个表来解决问题,如下所示:

<table>
    <? foreach($productTypes as $id => $productType):?>
    <tr class="product">
        <td><?= $productType ?></td>
        <td class="price" id="<?= $id ?>"></td>
        <td>        
            <select name="data[Quantity][<?=$id?>]" class="quantity">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
            </select>
        </td>
        <td class="subtotal"></td>
    </tr>
    <? endforeach; ?>
    <tr>
        <td colspan="4" style="text-align: right" id="total"></td>
    </tr>
</table>

如果有人有正确的方法,请告诉我。我仍在学习蛋糕的方式,每一点点都有帮助。