yii2 教程 "Working with Forms" -- 添加字段
yii2 tutorial "Working with Forms" -- add field
我是 Yii2 的新手,尝试先完成教程。
我只是尝试在参考此网页的 "Working with Forms" 指南中添加一个新字段(名称:组):http://www.yiiframework.com/doc-2.0/guide-start-forms.html#。
但是来自添加字段的用户输入没有出现在模型中。
型号:
class EntryForm extends Model
{
public $name;
public $email;
public $group; // additional attribute !!!!!!!!!!!
public function rules()
{
return [
[['name', 'email'], 'required'],
['email', 'email'],
];
}
}
站点控制器保持不变,不对指南进行任何更改。
报名表:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->label('Your Name') ?>
<?= $form->field($model, 'email')->label('Your E-Mail address') ?>
<?= $form->field($model, 'group')->label('Your Group name') ?> <!-- additional input !!!!!!!!!!! ->
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
输入确认:
...
<ul>
<li><label>Name</label>: <?= Html::encode($model->name) ?></li>
<li><label>Email</label>: <?= Html::encode($model->email) ?></li>
<li><label>Group</label>: <?= Html::encode($model->group) ?></li> <!--additional attribute !!!!!!!!!!! ->
</ul>
...
备注:
除了附加字段 "group",一切正常。
"group" 字段中的用户输入按预期出现在 $_POST 中。
但是如果我调用 $model->getAttributes()
它不会出现在模型中
我已经检查了 model->load() 的文档,但找不到任何提示。
非常感谢您的帮助。
模型的验证规则有两个用途:
- 确保在表单中输入的字段输入正确
- 定义
form fields are allowed to be assigned to a $model
变量
你漏掉了第二点,所以把你的模型规则函数改成
public function rules()
{
return [
[['name', 'email'], 'required'],
['email', 'email'],
['group', 'safe'],
];
}
它会起作用
我是 Yii2 的新手,尝试先完成教程。
我只是尝试在参考此网页的 "Working with Forms" 指南中添加一个新字段(名称:组):http://www.yiiframework.com/doc-2.0/guide-start-forms.html#。
但是来自添加字段的用户输入没有出现在模型中。
型号:
class EntryForm extends Model
{
public $name;
public $email;
public $group; // additional attribute !!!!!!!!!!!
public function rules()
{
return [
[['name', 'email'], 'required'],
['email', 'email'],
];
}
}
站点控制器保持不变,不对指南进行任何更改。
报名表:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name')->label('Your Name') ?>
<?= $form->field($model, 'email')->label('Your E-Mail address') ?>
<?= $form->field($model, 'group')->label('Your Group name') ?> <!-- additional input !!!!!!!!!!! ->
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
输入确认:
...
<ul>
<li><label>Name</label>: <?= Html::encode($model->name) ?></li>
<li><label>Email</label>: <?= Html::encode($model->email) ?></li>
<li><label>Group</label>: <?= Html::encode($model->group) ?></li> <!--additional attribute !!!!!!!!!!! ->
</ul>
...
备注:
除了附加字段 "group",一切正常。
"group" 字段中的用户输入按预期出现在 $_POST 中。
但是如果我调用 $model->getAttributes()
它不会出现在模型中我已经检查了 model->load() 的文档,但找不到任何提示。
非常感谢您的帮助。
模型的验证规则有两个用途:
- 确保在表单中输入的字段输入正确
- 定义
form fields are allowed to be assigned to a $model
变量
你漏掉了第二点,所以把你的模型规则函数改成
public function rules()
{
return [
[['name', 'email'], 'required'],
['email', 'email'],
['group', 'safe'],
];
}
它会起作用