文本框数据保存到数据库但下拉框数据没有

时间:2015-02-15 09:31:38

标签: php yii2 yii2-advanced-app

我自定义表单设计HTML并且它与Yii2一起工作正常,但只有文本框中的数据进入数据库,下拉框中的数据不会进入数据库。

示例代码:

<form id="form-signup" action="/frontend/web/index.php?r=site%2Fsignup" method="post" role="form">
<input type="text" class="form-control" id="inputFirstName" name="SignupForm[firstName]" placeholder="Type First Name">

    <select onchange="getCountList(this.value)" id="inpCountry" name="SignupForm[region]" class="gwt-ListBox stdTextWidth">
                            <option value="">Select Region</option>
                            <option value="1">Australia and the Pacific</option>
                            <option value="2">Africa</option>
                            <option value="51">Asia</option>
                            <option value="3">Europe</option>
                            <option value="4">North America</option>
                            <option value="5">South America</option>
                          </select>
    </form>

当我提交表单时,第一个名称会进入数据库,但区域ID不会进入数据库。

我的模特:

public function signup()
    {
        if ($this->validate()) {
            $user = new User();
            $user->FirstName = $this->firstName;
            $user->UserRegionID = $this->region;
            if ($user->save()) {
                return $user;
            }
        }

        return null;
    }

在调试器中,我可以看到表单正在提交数据但不保存在数据库中。

[
    'firstName' => 'Pen'
    'region' => '1'
]

我的表名是User,我的字段是FirstNameUserRegionID

1 个答案:

答案 0 :(得分:2)

如果您不想验证某些模型属性,为了大规模分配它们,您至少需要明确将它们标记为安全

public function rules()
{
    ['UserRegionID', 'safe'],
}

请阅读这些官方文档部分以更好地了解验证: