yii - Yii 中的一个 admin.php 中是否可以有 2 个不同的 CGridView?

标签 yii cgridview

一个 admin.php 中是否可以有 2 个不同的 CGridView 表?

例如,我有一个服务页面和一个包页面。

服务基本上是单独的服务,而包由单独的服务组成。

所以,我的问题是,我可以让 Service 的 CGridView 显示在 Package/admin.php 页面中吗?一个单独的 CGridView 表。

顶部是套餐列表,底部是一个不同的表格,其中包含单独的服务。

如果是这样,请指导我完成它。提前致谢。

已更新

public function actionAdmin() {
    $model = new Package('search');
    $model2 = new Service('search');
    $model->unsetAttributes();
    $model2->unsetAttributes();
    $model->active=1;
    $model2->active=1;

    if (isset($_GET['Package'])){
        $model->setAttributes($_GET['Package']);
    }

    $this->render('admin', array(
        'model' => $model,
        'model2' => $model2,
    ));
}

在_form.php下:

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'service-grid',
    'dataProvider' => $model2->search(),
    'htmlOptions'=>array('class'=>'grid-view grid-size'),
    'filter' => $model2,
    'columns' => array( //the appropriate columns
));

最佳答案

是的,这是可能的,您可以在一个页面/操作中拥有任意数量的 GridView 。

这是一个示例,其中我显示两个 GridView ,即管理主题 1 和管理主题 2

<?php
/* @var $this SubjectController */
/* @var $model Subject */
$this->breadcrumbs = array(
    Yii::t('edu', 'Subjects') => array('index'),
    Yii::t('edu', 'Manage'),
);
?>
<?php echo $this->renderPartial('application.views.layouts._actions', array('model' => $model)); ?>
<?php
Yii::app()->clientScript->registerScript('search', "
    $('.search-button').click(function(){
        $('.search-form').toggle();
        return false;
    });
    $('.search-form form').submit(function(){
        $.fn.yiiGridView.update('data-grid', {
            data: $(this).serialize()
        });
        return false;
    });
");
?>
<h3><?php echo Yii::t('edu', 'Manage Subjects 1'); ?></h3>
<!-- search-form -->
<div class="search-form" style="display:none">
    <p>You may optionally enter a comparison operator (<b>&lt;</b>, <b>&lt;=</b>, <b>&gt;</b>, <b>&gt;=</b>, <b>&lt;&gt;</b> or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.</p>
    <?php $this->renderPartial('_search', array('model' => $model)); ?>
</div>
<!-- search-form -->
<?php echo $this->renderPartial('_grid', array('model' => $model)); ?>

    <h3><?php echo Yii::t('edu', 'Manage Subjects 2'); ?></h3>
    <!-- search-form -->
    <div class="search-form" style="display:none">
        <p>You may optionally enter a comparison operator (<b>&lt;</b>, <b>&lt;=</b>, <b>&gt;</b>, <b>&gt;=</b>, <b>&lt;&gt;</b> or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.</p>
        <?php $this->renderPartial('_search', array('model' => $model)); ?>
    </div>
    <!-- search-form -->
<?php echo $this->renderPartial('_grid', array('model' => $model)); ?>

更新

您需要创建 2 个模型,请参阅下面的代码,模型 2 已创建,并且它是一个不同的表。您将其传递给 admin.php 并在 gridview 中将模型更改为第二个 gridview 中的 model2 。仅此而已。

/**
 * Manages all models.
 */
public function actionAdmin()
{
    $model = new Subject('search');
    $model2 = new Institute('search');
    Yii::app()->appLog->writeLog('Manage Subjects.');  // Activity log entry
    $model->unsetAttributes();  // Clear any default values

    $data = TK::get('Subject');
    if ($data !== null)
        $model->attributes = $data;

    $params = array('model' => $model, 'model2' => $model2);
    if (Yii::app()->request->isAjaxRequest)
        $this->renderPartial('_grid', $params);
    else
        $this->render('admin', $params);
}

关于yii - Yii 中的一个 admin.php 中是否可以有 2 个不同的 CGridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29484022/

相关文章:

yii - 如何将按钮添加到 CGridView?

php - 将上传的视频公开在 YouTube 上

php - Yii CArrayDataProvider 对所有列进行排序

php - 如何在 Yii 框架中创建提交前的确认对话框

Yii CListView : how to disable all additional html

php - YII CGridView。试图显示其他表的属性。关系不工作

php - Yii1 CGridView(Yii-Booster) : How to change filter key(filterVal) in TbGridView(based on CGridView)?

php - 如何在 Yii 中实现 CArrayDataProvider

php - 验证忽略其中一个条件 - yii

php - 使用 Yii 创建 PDF 或 Word 文档?