Php 如何从yii2中的不同模型创建视图中的表单?
我是yii的新手。我正在开发客户项目应用程序。我有一个视图,其中iam显示来自模型、客户和项目的数据 如何创建表单以添加新项目? 要在客户视图中显示项目数据,iam使用Php 如何从yii2中的不同模型创建视图中的表单?,php,yii2,Php,Yii2,我是yii的新手。我正在开发客户项目应用程序。我有一个视图,其中iam显示来自模型、客户和项目的数据 如何创建表单以添加新项目? 要在客户视图中显示项目数据,iam使用 $query=Projects::find() ->where(['projects_clients_id'=> $model->customer_id]); $dataProvider = new ActiveDataProvider([ 'query' =&
$query=Projects::find()
->where(['projects_clients_id'=> $model->customer_id]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 20,
],
]);
echo GridView::widget([
'dataProvider' => $dataProvider,
]);
您有关于的所有文档,如果您是Yii2新手,我建议您使用表单部分 这是一种基本形式:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'email') ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
您可以在一个视图中呈现多个模型和/或数据提供程序(正确构造) 例如: 然后,您可以使用一个视图,其中包含几个与适当的数据提供者相关的gridView,以及几个具有适当操作的表单everyone 因此,当您按下指定的submit时,您将调用适当的控制器操作
<?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(); ?>
我希望这可能有用您应该为您想要的任何形式创建另一个
modelForm
。最佳方式是每个表或模型对应一个模型。这是你问题的答案吗?萨格思..我同意..但我对使用不同模型的表单感到困惑。如果我实现上面的表单,它将只从Customers表中获取数据。我需要项目表。正如我在演示中所展示的,我有一个页面,上面有客户及其项目。我想从同一页添加一个新项目。。显示项目模型中的数据没有问题。但是如何创建一个表单来添加新项目?我该怎么做?您需要一个项目模型
您可以使用Gii
工具创建,一个控制器
使用此模型存储数据,一个视图
和表单,以及一个ProjectFormmodel
,用于验证来自表单的数据,并将其发送给控制器的另一个操作。我不想成为一个固执己见的人,但权威指南解释了MVC是如何比我更好地工作的:染料,实际上我看起来像这样。
<?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(); ?>