如何在yii2中从不同的模型创建视图?

Nut*_*ath 4 php yii2

我是yii的新手.我正在开发客户项目应用程序.我有一个视图,其中iam显示模型,客户和项目的数据.

如何创建表单以添加新项目? 我的项目在这里

要在客户视图中显示项目数据,请使用iam

$query=Projects::find()
    ->where(['projects_clients_id'=> $model->customer_id]);    

       $dataProvider = new ActiveDataProvider([
        'query' => $query,        
        'pagination' => [
            'pageSize' => 20,
        ],
    ]);
    echo GridView::widget([
        'dataProvider' => $dataProvider,
    ]);
Run Code Online (Sandbox Code Playgroud)

sca*_*dge 6

您可以在视图中渲染多个模型和/或dataProvider (正确构造)

例如:

    return $this->render('viewTestMulti', [
        'modelOne'                 =>$modelOne,
        'dataProviderTwo'                => $providerTwo,
        'dataProviderThree'      => $providerThree,
        'modeFour'                    => $modelFour,
    ]);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用一个带有几个与正确的dataProvider相关的gridView的视图,并且有几个形式的每个人都有适当的动作,所以当你按下指定的提交时你调用适当的控制器动作

<?php
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
?>


<?php $formOne = ActiveForm::begin(); 
      $formOne->action=  yii\helpers\Url::to('ControllerOne\create');
 ?>

<?= $formOne->field($modelOne, 'name') ?>

<?= $formOne->field($modelOne, 'email') ?>

<div class="form-group">
   <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>



<?php $formFour = ActiveForm::begin(); 
   $formFour->action= yii\helpers\Url::to('ControllerFour\create');
?>

<?= $formFour->field($modelFour, 'name_four') ?>

<?= $formFour->field($modelFour, 'email_four') ?>

<div class="form-group">
   <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud)

我希望这可能有用