YII 1中的getPrimaryKey函数不起作用


getPrimaryKey function in YII 1 is not working

我应该如何通过YI1中的getPrimaryKey()获得最后插入的id?

我的记录已插入数据库,但它返回空值。

我使用了以下代码。

public function saveSurvey($model){ 
    if($model->ID == ''){
        $model->Name = trim($model->Name);
        $model->EngagementQuestionNo = trim($model->EngagementQuestionNo);
        $model->CSVColumnCount = trim($model->CSVColumnCount);
        $model->LocationQuestionNo = trim($model->LocationQuestionNo);
        $model->CreatedOn = new CDbExpression('NOW()');         
        if($model->save()){
            echo 'saved id >> ';
            echo $surveyID  = $model->ID;
        }
        else{
            echo 'error';
        }
   }
}

我在模型中的当前规则

public function rules()
{       
    return array(
        array('Name,EngagementQuestionNo,CSVColumnCount,LocationQuestionNo', 'required'),
        array('CSVColumnCount', 'numerical', 'integerOnly'=>true),
        array('Name', 'length', 'max'=>100),
        array('QuestionNumbers, ID', 'safe'),
        array('ID, Name, CreatedOn, LastModifiedOn,QuestionNumbers', 'safe', 'on'=>'search'),
    );
}

您只需初始化Survey模型类的新对象

$newObjectModel=new Survey()

添加新对象后,您的代码如下所示:

    public function saveSurvey($model){ 
    if($model->ID == ''){
        $newObjectModel = new Survey(); 
        $newObjectModel ->Name = trim($model->Name);
        $newObjectModel ->EngagementQuestionNo = trim($model->EngagementQuestionNo);
        $newObjectModel ->CSVColumnCount = trim($model->CSVColumnCount);
        $newObjectModel ->LocationQuestionNo = trim($model->LocationQuestionNo);
        $newObjectModel ->CreatedOn = new CDbExpression('NOW()');         
        if($newObjectModel ->save()){
            echo $surveyID  = $newObjectModel ->ID;
        }
        else{
            echo 'error';
        }
   }
}