文本框数据保存到数据库但下拉框数据没有
Textbox data saved to database but dropdown box data didn't
我设计了自定义表单 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'
]
我的 table 名称是 User,我的字段是 FirstName
和 UserRegionID
如果您不想验证某些模型属性,为了大量分配它们,您至少需要明确地将它们标记为 safe:
public function rules()
{
['UserRegionID', 'safe'],
}
请阅读这些官方文档部分以更好地理解验证:
我设计了自定义表单 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'
]
我的 table 名称是 User,我的字段是 FirstName
和 UserRegionID
如果您不想验证某些模型属性,为了大量分配它们,您至少需要明确地将它们标记为 safe:
public function rules()
{
['UserRegionID', 'safe'],
}
请阅读这些官方文档部分以更好地理解验证: