我在Yii2控制器中有以下创建操作:
public function actionCreate2()
{
$searchModel = new BibliografieSearch();
$searchModel = new CodiciSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$model = new Elenchi();
$model->Modified = date( 'y-m-d' );
if ($model->FogliDaO) {
$model->FogliDaO = str_pad($model->FogliDaO, 8, "0", STR_PAD_LEFT);
}
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['index', 'sort' => '-IDElenco']);
}
return $this->render('create2', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel
]);
}现在,如果我在字段中写入"28v“(FogliDaO)并保存新记录,Mysql数据库中的结果总是"28v",而不是"0000028v”。我哪里错了?(FogliDaO是VARCHAR)。我需要帮助。非常感谢!
发布于 2021-02-09 16:28:22
如果要更改$model的内容,则必须在load()之后和save()函数之前分配填充值。否则,您将覆盖该辅助项。
public function actionCreate2()
{
$searchModel = new BibliografieSearch();
$searchModel = new CodiciSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$model = new Elenchi();
if ($model->load(Yii::$app->request->post()) ) {
$model->Modified = date( 'y-m-d' );
if ($model->FogliDaO) {
$model->FogliDaO = str_pad($model->FogliDaO, 8, "0", STR_PAD_LEFT);
}
$model->save();
return $this->redirect(['index', 'sort' => '-IDElenco']);
}
return $this->render('create2', [
'model' => $model,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel
]);
}$ model ->load()函数将对应的模型数据从$_POST复制到实际(新)模型。因此,如果在load()函数之前分配填充值,则此值将丢失,因为load用$_POST内容覆盖此值
https://stackoverflow.com/questions/66122759
复制相似问题