繁体   English   中英

Yii2-表单和相关gridview在同一页面上

[英]Yii2 - form and related gridview on the same page

有人可以指导我如何在YIi2中呈现表格视图本身的gridview吗?

我真的对Yii陌生,想知道如何实现这一目标。

谢谢

use yii\grid\GridView;

<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'status')->textInput() ?>
<?= GridView::widget([
    'dataProvider' => $itemDataProvider,
    'columns' => [

        ['class' => 'yii\grid\SerialColumn'],
        'start_date',
        'end_date',

        ['class' => 'yii\grid\CheckboxColumn'],
    ],
]); ?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>

尝试在表单标签外部使用Pjax在模态中添加put Gridview,以便例如如果您不希望过滤器提交主表单

<?php
$form = ActiveForm::begin();
?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>

//button for showing modal
<button type="button" class="btn btn-default" data-toggle="modal" data-target="#modal_large">Browse</button>

 <?php ActiveForm::end(); ?>
<div class="modal" id="modal_large" tabindex="-1" role="dialog" aria-labelledby="largeModalHead" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="largeModalHead">Large Modal</h4>
            </div>
            <div class="modal-body">
                <?php
                Pjax::begin([
                    'enablePushState' => false
                ]);
                echo GridView::widget([
                    'dataProvider' => $imageDataProvider,
                    'filterModel' => $imageSearchModel,
                    'columns' => [
                        ['class' => 'yii\grid\SerialColumn'],
                        'field',
                        'created_at:datetime',
                        ['class' => 'yii\grid\ActionColumn'],
                    ],
                ]);
                Pjax::end();
                ?>     </div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div>

在单页视图上呈现表单和gridview。

控制器代码

包括要渲染的参数:

  • _form视图的$model
  • $searchModel$dataProvider用于索引视图。

      public function actionCreate() { $model = new WorkflowStep; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect([ 'view', 'step_id' => $model->step_id ]); } $searchModel = new WorkflowStepSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('create', [ 'model' => $model, 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } 

查看代码

现在在app / views / create.php中,我们需要做的就是渲染其他所需的视图并传递预期的参数。

        <?php

        use yii\helpers\Html;

        /* @var $this yii\web\View */
        /* @var $model app\modules\tickets\models\WorkflowStep */

        $this->title = 'Create Workflow Step';
        $this->params['breadcrumbs'][] = ['label' => 'Workflow Steps', 'url' => ['index']];
        $this->params['breadcrumbs'][] = $this->title;

        ?>
        <div class="workflow-step-create">

            <h1><?= Html::encode($this->title) ?></h1>

            <?= $this->render('_form', [
                'model' => $model,
            ]) ?>

            <?= $this->render('index', [
                'searchModel' => $searchModel,
                'dataProvider' => $dataProvider,
            ]) ?>

        </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM