多个对象相同的模型loadMultiple()

时间:2017-04-14 07:06:54

标签: php yii2

在我看来,我可以有一个或多个这样的组合,但是当尝试仅使用一个组合打印用户时,  在我的控制器中我得到了2个

<input type="text" name="User[user_id][]" />
<input type="text" name="User[username][]" />

在我的控制器中:

 $count = count(Yii::$app->request->post('User'));// return 2

我检查计数的目的是创建一些用户实例,但由于我无法获得正确数量的创建用户,我无法继续,有人可以启发我。感谢

3 个答案:

答案 0 :(得分:0)

您需要将代码更改为:

<input type="text" name="User[0][user_id]" />
<input type="text" name="User[0][username]" />
<input type="text" name="User[1][user_id]" />
<input type="text" name="User[1][username]" />
<input type="text" name="User[2][user_id]" />
<input type="text" name="User[2][username]" />

依旧...... 它返回2,因为您在数组的错误维度中创建了user_iduser_name

答案 1 :(得分:0)

您需要使用jQuery和clone()函数,并在新的克隆字段中自动增加要替换的ID。

JSFiddle: here

<强> HTML:

<form id="autoinc-yii2form">
    <div id="aiy2-fields">
        <div class="aiy2f-user-wrap" data-user-count="0">
            <div class="aiy2f-userid-wrap">
                User ID: <input type="text" name="User[0][user_id]" class="aiy2-userid" />
            </div>
            <div class="aiy2f-username-wrap">
                Username: <input type="text" name="User[0][username]" class="aiy2-username" />
            </div>
        </div>
    </div>


    <button type="button" onClick="return adduser();">Add User</button>
</form>

<强> JQuery的:

function adduser() {
    var userCount = $("#aiy2-fields .aiy2f-user-wrap:last").data("user-count") + 1;
    var cloned = $("#aiy2-fields .aiy2f-user-wrap:last").clone();

    cloned.find(".aiy2-userid").attr("name", "User[" + userCount + "][user_id]");
    cloned.find(".aiy2-username").attr("name", "User[" + userCount + "][username]")

    cloned.attr("data-user-count", userCount);
    cloned.appendTo("#aiy2-fields");

    return false;
}

答案 2 :(得分:-1)

执行var_dump($ _ POST),你会看到你得到了什么。你有2个密钥的用户数组,这意味着它的长度为2.