Php 设置默认值并使用Yii创建数据库
我正在尝试创建一个新用户,但在尝试创建用户时遇到问题,因为创建用户所需的一些值必须是默认值,我不太确定如何设置。当实际的“创建”发生在不同的控制器时,我还需要输入到不同的表中 这是我的表格代码:Php 设置默认值并使用Yii创建数据库,php,mysql,yii,Php,Mysql,Yii,我正在尝试创建一个新用户,但在尝试创建用户时遇到问题,因为创建用户所需的一些值必须是默认值,我不太确定如何设置。当实际的“创建”发生在不同的控制器时,我还需要输入到不同的表中 这是我的表格代码: <?php /* @var $this SystemUserController */ /* @var $model SystemUser */ /* @var $form CActiveForm */ ?> <div class="form"> <?php $f
<?php
/* @var $this SystemUserController */
/* @var $model SystemUser */
/* @var $form CActiveForm */
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'system-user-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<!--
<div class="row">
<?php echo $form->labelEx($model,'party_id'); ?>
<?php echo $form->textField($model,'party_id',array('size'=>20,'maxlength'=>20)); ?>
<?php echo $form->error($model,'party_id'); ?>
</div>
!-->
<div class="row" id="toshow" style="display:none" name="suppliers"> <?php $supplier = SupplierHead::model()->findAll();
$list = CHtml::listData($supplier ,'head_id','head_name');
echo $form->DropDownList($model,'party_id',
$list, array('prompt'=>'Select Supplier')); ?>
</div>
<button id="abutton">Already a Supplier</button>
<script>
$(document).ready(function() {
$("#abutton").click(function(e){
e.preventDefault();
$("#toshow").css('display', 'block');
});
});
</script>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username',array('size'=>60,'maxlength'=>200)); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<script>
$("#supplier").click(function () {
$("#suppliers").show("slow");
});
</script>
<!--
<div class="row">
<?php echo $form->labelEx($model,'date_last_login'); ?>
<?php echo $form->textField($model,'date_last_login'); ?>
<?php echo $form->error($model,'date_last_login'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'status'); ?>
<?php echo $form->textField($model,'status',array('size'=>50,'maxlength'=>50)); ?>
<?php echo $form->error($model,'status'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'date_created'); ?>
<?php echo $form->textField($model,'date_created'); ?>
<?php echo $form->error($model,'date_created'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'date_modified'); ?>
<?php echo $form->textField($model,'date_modified'); ?>
<?php echo $form->error($model,'date_modified'); ?>
</div>
--!>
<div class="row">
<?php echo $form->labelEx($model,'user_role'); ?>
<?php echo $form->textField($model,'user_role',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'user_role'); ?>
</div>
<!--
<div class="row">
<?php echo $form->labelEx($model,'isLogin'); ?>
<?php echo $form->textField($model,'isLogin'); ?>
<?php echo $form->error($model,'isLogin'); ?>
</div>
--!>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
最后,还有一个我在上面从表单中包含的下拉列表,它需要插入到不同控制器的模型中。我该怎么办
需要默认值的属性如下所示:
date_last_login
status
date_created
date_modified
编辑
我上传了一张我选择“创建”时发生的事情的图片
我决定不添加默认值,尝试将它们保持为NULL,只是为了看看rules()是否有效。我
有什么帮助吗?请尝试使用此数据类型:
date_last_login : timestamp
status : enum('active','inactive')
date_created : timestamp
date_modified : timestamp
Defult Time stamp:current_timestamp尝试使用此数据类型:
date_last_login : timestamp
status : enum('active','inactive')
date_created : timestamp
date_modified : timestamp
Defult Time stamp:current_timestamp您可以像这样使用规则
public function rules()
{
return array(
// your other rules
array('myField','default','value'=>'my Name'),
// for date type use new CDbExpression('NOW()')
array('date_modified','default',
'value'=>new CDbExpression('NOW()'),
),
// rest of your rules
);
}
你可以像这样使用规则
public function rules()
{
return array(
// your other rules
array('myField','default','value'=>'my Name'),
// for date type use new CDbExpression('NOW()')
array('date_modified','default',
'value'=>new CDbExpression('NOW()'),
),
// rest of your rules
);
}
Yii的模型有如下方法:
- beforeSave()
- 余波
- beforeValidate()
- afterValidate()
- 等等
public function beforeSave() {
if (parent::beforeSave()) {
//Example
$this->date_modified=new New CDbExpression('NOW()');
//ANOTHER EXAMPLE
$this->date=date('Y-m-d',time());
// YOU CAN EVEN CALLING A WEBSERVICE
// ANYTHING THAT YOU WANT TO DO BEFORE SAVING INTO DATABASE
return true;
}
}
其他方法,如余波和。。。像上面那样工作。
我希望它能有所帮助:)Yii的模型有如下方法:
- beforeSave()
- 余波
- beforeValidate()
- afterValidate()
- 等等
public function beforeSave() {
if (parent::beforeSave()) {
//Example
$this->date_modified=new New CDbExpression('NOW()');
//ANOTHER EXAMPLE
$this->date=date('Y-m-d',time());
// YOU CAN EVEN CALLING A WEBSERVICE
// ANYTHING THAT YOU WANT TO DO BEFORE SAVING INTO DATABASE
return true;
}
}
其他方法,如余波和。。。像上面那样工作。
我希望它有帮助:)您最好的选择是使用模型的beforeSave/Update功能请选中此项您最好的选择是使用模型的beforeSave/Update功能请选中此项,这样我就不应该注释掉这些属性,创建默认值?是的,您可以为这些字段创建默认值,如我在回答中所示,因此我不应该注释掉这些属性,而是创建默认值?是的,您可以为这些字段创建默认值,如我在回答中所示。我可以问一下父字段是什么意思吗?是指我的模特的父母吗?这个围棋在模型里,对吗?我可以问一下父母是什么意思吗?是指我的模特的父母吗?这个围棋在模型里,对吗?