Php 仅当表单的任何字段发生更改时,如何更新标志
如果表单的任何字段未更改,则将标志设置为1;如果表单的任何字段更改,则将标志设置为0。以下是我的看法:Php 仅当表单的任何字段发生更改时,如何更新标志,php,yii,Php,Yii,如果表单的任何字段未更改,则将标志设置为1;如果表单的任何字段更改,则将标志设置为0。以下是我的看法: <div class="row"> <?php echo $form->labelEx($model,'name'); ?> <?php echo $form->textField($model,'name'); ?> <?php echo $form->error($model,'name'); ?>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name'); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'email'); ?>
<?php echo $form->textField($model,'email'); ?>
<?php echo $form->error($model,'email'); ?>
</div>
如果您使用的是Y1.1
通过创建两个名为beforeSave和afterFind的函数,可以在模型中实现这一点。Yii将在保存记录之前和查找记录之后自动调用此函数
您的策略是在找到记录时复制该记录,并在更新记录之前,使用以前的值检查表单中的当前值
class User extends CActiveRecord
{
public $oldRecord;
public function afterFind()
{
$this->oldRecord=clone $this;
return parent::afterFind();
}
public function beforeSave()
{
if ($this->oldRecord->email !== $this->email) {
$this->changed_record_flag = true;
}
}
}
请提供您自己已经尝试过的任何代码。请添加必要的代码/references@Ayush更新您的问题。更新您的问题我的问题是,如果我在创建时输入了多个文本字段,但在更新时我不会更改/输入任何字段如何通过此更改列的状态,如果未更改/输入任何字段,则将标志列设置为0,否则设置为1。我想这次我的问题很清楚。