Yii基于当前父记录多次更新子记录

Yii基于当前父记录多次更新子记录,yii,Yii,我试图想出一种方法来更新一个模型的多个记录,当我使用YiiBooster时,我发现可以使用扩展网格进行批量操作 我在web上找到的大多数示例都显示了如何使用Ajax删除多个记录,但我的要求略有不同。作为Yii的新手,我正在努力找到一个合适的解决方案 基本上我有两个模型,一个是父母,一个是一对多关系的孩子。在子模型中,我有一个字段,它使用父ID引用它所属的父模型 在应用程序的前端,用户应该导航到父更新视图,然后查看分配给该父级的所有子级的列表。我创建了一个模式窗口,其中显示了所有能够执行批量更新操

我试图想出一种方法来更新一个模型的多个记录,当我使用YiiBooster时,我发现可以使用扩展网格进行批量操作

我在web上找到的大多数示例都显示了如何使用Ajax删除多个记录,但我的要求略有不同。作为Yii的新手,我正在努力找到一个合适的解决方案

基本上我有两个模型,一个是父母,一个是一对多关系的孩子。在子模型中,我有一个字段,它使用父ID引用它所属的父模型

在应用程序的前端,用户应该导航到父更新视图,然后查看分配给该父级的所有子级的列表。我创建了一个模式窗口,其中显示了所有能够执行批量更新操作的子项的网格列表。然后将父ID分配给所有选定的子项

谁能帮我解决这个问题,因为我不确定我需要在扩展网格视图和控制器中编辑哪些内容来更新记录

在父更新视图中,我使用renderPartial拉入子级的索引视图,如下所示:

<?php $this->renderPartial('application.modules.children.views.childviews.addChild', array('dataProvider' => new CActiveDataProvider('Children'))); ?>

然后,我的子索引视图中有一个扩展网格:

<?php
$this->widget('bootstrap.widgets.TbExtendedGridView', array(
    'type' => 'striped bordered',
    'id' => 'children-grid',
    'dataProvider' => $dataProvider,
    'bulkActions' => array(
        'actionButtons' => array(
            array(
                'buttonType' => 'link',
                'type' => 'primary',
                'size' => 'small',
                'label' => 'Bulk Action',
                'url' => array('batchUpdate'),
                'htmlOptions' => array(
                    'class' => 'bulk-action'
                ),
                'id' => 'child_id',
                'click' => ''
            )
        ),
        'checkBoxColumnConfig' => array(
            'name' => 'child_id'
        ),
    ),
    'columns' => array(
        'child_id',
        'child_status',
        'parent_id',
        array(
            'class' => 'bootstrap.widgets.TbButtonColumn',
            'buttons' => array(
                'update' => array(
                    'label' => '<i class="icon-user"></i> <span>View Child</span>',
                    'options' => array('class' => 'btn btn-small'),
                    'url' => 'Yii::app()->createUrl("children/update", array("id"=>$data->child_id))',
                ),
            ),
        ),
    ),
));
?>

与您在问题中所述的一对多关系不同,您真正想要的是多对多关系。我这样说的原因是,您似乎想从一组预定义的财产中进行选择,以便进行拍卖。在这种情况下,您将显示父对象(拍卖)和透视子对象(属性)列表,并使用复选框或类似的内容指示透视子对象的选择。您必须使用单独的数据模型来记录选择。我现在没有一个例子,但是我需要在我当前的Yii项目中做类似的事情,当我到达那里时,我会在博客上写这件事。

我的问题是,如果您的子记录中还没有父id,您将如何与父id一起显示它们?目前,父id已硬编码到子表中。这是我尝试让功能正常工作的时候。理想情况下,如果父级中没有子记录,页面将告诉用户没有记录。很多人认为我的观点是不需要大量分配父密钥。应该在您最初创建子项时分配该功能。不幸的是,客户端需要此功能。父对象实际上是拍卖,子对象是财产,因此这意味着客户需要能够将财产分配给拍卖,如果按财产分配,这将非常缓慢。其想法是,客户将进行id为1的拍卖,然后将多个财产分配给该拍卖。我喜欢你的博客,内容丰富!好的,我明白你现在在做什么。这不是一对多父子关系,而是一种多对多父子关系,在这种关系中,给定的拍卖需要从预定义属性列表中分配属性。今天晚上下班后我会回答。已经有一段时间了,但这是我关于这个话题的博客文章。我正在使用CheckBoxList()选择子记录。