Forms Yii2一次操作中的多种形式

Forms Yii2一次操作中的多种形式,forms,yii2,Forms,Yii2,在一个动作中处理多个表单的正确方法是什么 这是我的模型/MembersBans.php 而且它似乎不起作用。有什么想法吗?在ActiveForm中的Id并不意味着$u POST中的Id。你应使用: $membersBans->load(Yii::$app->request->post()) 或 $membersBans->load(Yii::$app->request->post('membersBans')) 用于从表单加载属性 例如,来自CeBe()的多个表单 在操作中使用一个模型。我认

在一个动作中处理多个表单的正确方法是什么

这是我的模型/MembersBans.php



而且它似乎不起作用。有什么想法吗?

ActiveForm
中的Id并不意味着$u POST中的Id。你应使用:

$membersBans->load(Yii::$app->request->post())

$membersBans->load(Yii::$app->request->post('membersBans'))

用于从表单加载属性

例如,来自CeBe()的多个表单

操作中
使用一个
模型
。我认为您应该将
MembersBans
扩展到
MembersBansIp
类。以及您的
操作

public function actionList() {
    $membersBans = new MembersBans();
    $membersBansIp = new MembersBansIp();
    if ($membersBans->load(Yii::$app->request->post())) {
        $membersBans->banMember();
    }
    if ($membersBansIp->load(Yii::$app->request->post())) {
        $membersBansIp->banIp();
    }
    return $this->render('list', [
                'membersBans' => $membersBans,
                'membersBansIp' => $membersBansIp,
    ]);
}
视图中

<?php
    $activeForm = ActiveForm::begin([
            'id' => 'banMember',
])
?>

    <?= $activeForm->field($membersBans, 'fieldMembersBans') ?>
    <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
    <?php ActiveForm::end() ?>
<?php
    $activeForm = ActiveForm::begin([
            'id' => 'banMemberIp',
])
?>

    <?= $activeForm->field($membersBansIp, 'usernameMembersBansIp') ?>
    <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
    <?php ActiveForm::end() ?>
模型中
成员
更改为
用户
,因为我没有
成员
对象:

$memberInfo = User::findByUsername($this->username);
        if ($memberInfo) {
            $this->ban_memberid = $memberInfo->id;

简历:你的代码工作正常。更改
控制器
,我是如何编写的。

好的,但是如何通过单个模型在单个操作中处理多个表单?我只有一个名为MembersBans的ActiveRecords模型,我不想扩展它。有没有一种方法可以在单个模型的单个操作中使用两个表单?请向您展示
banMember
banIp
视图(编辑您的问题)。我会试着做点什么。
$membersBans = new MembersBans();
        if ($membersBans->load(Yii::$app->request->post())) {
            $membersBans->banMember();
        }
        if ($membersBans->load(Yii::$app->request->post())) {
            $membersBans->banIp();
        }
$memberInfo = User::findByUsername($this->username);
        if ($memberInfo) {
            $this->ban_memberid = $memberInfo->id;