php 在Yii2中,i传递了模型值,但显示为空

1bqhqjot  于 2023-01-29  发布在  PHP
关注(0)|答案(3)|浏览(140)

这是我的控制器代码

if ($this->request->isPost) {
            $model->created_by = Yii::$app->user->identity->id;
            $model->created_at = date('Y/m/d');
            // echo $model->created_at;die;
            if ($model->load($this->request->post()) && $model->save()) {
                return $this->redirect(['index', 'id' => $model->id]);
            }
        }

这就是我的模型规则

public function rules()
{
    return [
        [['deduction_type'], 'required'],
        [['created_at'], 'safe'],
        [['created_by'], 'integer'],
        [['deduction_type'], 'string', 'max' => 100],
    ];
}

我的问题是每次我在create_at和create_by中传递值时,它在databasde中保存为null,而在want中我的值保存在db中

hts6caw3

hts6caw31#

而不是你的方式

if ($this->request->isPost) {
            //Move that two Lines inside the if
            $model->created_by = Yii::$app->user->identity->id;
            $model->created_at = date('Y/m/d');

            // echo $model->created_at;die;
            if ($model->load($this->request->post()) && $model->save()) {
                return $this->redirect(['index', 'id' => $model->id]);
            }
        }

我通常会这样做:

if ($this->request->isPost) {
            if ($model->load($this->request->post()) && $model->validate()) {
                $model->created_by = Yii::$app->user->identity->id;
                $model->created_at = date('Y/m/d');
                $model->save();
                return $this->redirect(['index', 'id' => $model->id]);
            }
        }

validate()-〉根据您的规则检查输入是否正确。然后您知道输入正确,您可以设置您的值。
这是我处理这个问题的常用方法,你也可以用一个if来 Package $model->save();,以检查你的修改,并捕捉保存()中潜在的false

htrmnn0y

htrmnn0y2#

检查您的POST,它是否发送空字段created_at和created_by?不要在POST中发送此字段,load()方法不会在空值上替换它。

lyr7nygr

lyr7nygr3#

如果确实要插入当前用户ID和当前时间,请使用BlameableBehavior和TimestampBehavior。
BlameableBehavior自动使用当前用户ID填充指定属性。https://www.yiiframework.com/doc/api/2.0/yii-behaviors-blameablebehavior
TimestampBehavior自动用当前时间戳填充指定属性。https://www.yiiframework.com/doc/api/2.0/yii-behaviors-timestampbehavior

相关问题