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

mbyulnm0  于 2023-02-03  发布在  PHP
关注(0)|答案(3)|浏览(203)

这是我的控制器代码

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中的值时,数据在数据库中保存为null。我希望我的实际值保存在db中。

n3ipq98p

n3ipq98p1#

而不是你的方式

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

wydwbb8l

wydwbb8l2#

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

kpbpu008

kpbpu0083#

如果确实要插入当前用户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

相关问题