保存表单数据 Yii2

约翰·多伊

我有个问题。假设我们有一个这样的模型:

/**
 * 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章