0

我正在尝试创建一个包含多个字段的表单,一些字段将由用户填写,而其他字段将按照定义转储到数据库中。

我真的不知道如何在语法方面使用它。

为了更通用,例如我有 Post tble 有以下文件

            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

上传图片

现在我想知道我该怎么做

  1. 在没有用户的情况下在数据库字段中传递当前时间和当前日期
  2. 输入。来自会话的用户 ID
4

3 回答 3

1

在您的模型中:

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();
}
于 2012-10-02T21:13:23.413 回答
1

1)如果你使用像MySQL这样的数据库,你不需要created_dateand created_time,只是一个datetime字段(可能created_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;
}
于 2012-10-02T21:17:15.417 回答
0
  1. 代替

    'created_time' => 'Created Time',
    'created_date' => 'Created Date',

您只需要数据库中的一个字段:

create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

很多 php 函数都使用时间戳,使用起来非常简单。你可以在这里阅读。因此,如果您插入 NULL create_time,mysql 将插入默认值DEFAULT CURRENT_TIMESTAMP- 当前时间。

  1. 正如@Veseliq 和@mashingan 所说,您需要添加

    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_dump(Yii::app()->user->id);

于 2012-10-03T04:52:43.990 回答