我有个问题。假设我们有一个这样的模型:
/**
* This is the model class for table "user".
*
* @property integer $id
* @property string $username
* @property string $first_name
* @property string $last_name
*/
class User extends \yii\db\ActiveRecord
{
public static function tableName()
{
return 'user';
}
public function rules()
{
return [
// some rules for fields
];
}
public function attributeLabels()
{
return [
// some attributes
];
}
现在我想为更新创建额外的表单模型(例如)first_name。所以我创建了下一个表单模型:
class UpdateUserFirstNameForm extends Model
{
public $first_name
public function rules()
{
return [
// some rules for first_name
];
}
问题是 - 我如何保存这个表格?我必须在控制器中写什么?
我会在您UpdateUserFirstNameForm
的 User 中创建另一个属性,id
例如id_user
. 然后,在您的表单中创建一个activeHiddenField
用户 ID(以及用户名字的文本输入)。
现在在控制器中,您将帖子内容加载到您的模型中,通过 id 查找用户并User
使用新的名字更新模型:
$model = new UpdateUserFirstNameForm();
if ($model->load(Yii::$app->request()->post() and $model->validate()) {
$user = User::findOne($model->id_user);
if ($user == null)
throw new NotFoundHttpException();
$user->first_name = $model->first_name;
$user->save();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句