Yii 键/对默认值
我试图创建一个表单,它将有多个字段,一些字段将由用户填写,其他字段将被转储到数据库中 就语法而言,我真的不知道如何处理这个问题 更一般地说,例如,我有Post-tble,它有以下文件Yii 键/对默认值,yii,Yii,我试图创建一个表单,它将有多个字段,一些字段将由用户填写,其他字段将被转储到数据库中 就语法而言,我真的不知道如何处理这个问题 更一般地说,例如,我有Post-tble,它有以下文件 id' => 'ID', 'post_head' => 'Heading', 'post_desc' => 'Description', 'post_tags' => 'Tags', 'created_t
id' => 'ID',
'post_head' => 'Heading',
'post_desc' => 'Description',
'post_tags' => 'Tags',
'created_time' => 'Created Time',
'created_date' => 'Created Date',
'post_image' => 'Upload Image',
'post_status' => 'Status',
'user_id' => 'User',
'category_id' => 'Category',
);
现在,我只想从用户处获取以下字段中的输入:
Heading
Description
Tags
上传图像
现在我想知道我怎么能
function beforeSave() {
if($this->getIsNewRecord()) {
$this->created_date = new CDbExpression('NOW()');
$this->created_time = new CDbExpression('NOW()');
}
$this->user_id = Yii::app()->user->id;
return parent::beforeSave();
}
1) 如果您使用MySQL这样的数据库,您不需要created\u date
和created\u time
,只需要datetime
字段(可能created\u time
就是这样),它将存储这两个数据
public function behaviors()
{
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'updateAttribute' => false,
'createAttribute' => 'created_time',
)
);
}
然后是两个:
function beforeSave() {
if (!parent::beforeSave) {
return false;
}
$this->user_id = Yii::app()->user->id; // it should be this one, but it depends on how you implemented logging!
return true;
}
“创建时间”=>“创建时间”,
“创建日期”=>“创建日期”,
create_time timestamp NOT NULL默认当前_timestamp
很多php函数都使用时间戳,使用起来非常简单。你可以阅读。
因此,如果插入NULLcreate_time
,mysql将插入默认值default CURRENT_TIMESTAMP
-CURRENT time
function beforeSave() {
$this->user_id = Yii::app()->user->id;
return parent::beforeSave();
}
或者尝试在表单视图中添加:
echo $form->hiddenField($model, 'user_id', array('value'=>Yii::app()->user->id));
如果不起作用,则向我们显示
var\u dump(Yii::app()->user->id)代码>我这样做了,但数据库中的字段仍将变为空白,以向我们展示如何保存模型。您希望看到什么?我不明白你怎么保存你的模型?您是否可以提供控制器操作,或者在任何其他地方$model->save()
。