Php Yii框架。Can';不保存模型

Php Yii框架。Can';不保存模型,php,yii,frameworks,Php,Yii,Frameworks,我和易有问题。我在控制器中有以下代码: ... $user = User::model()->find("user_id = :id AND type='1'", array('id'=>$user->id)); $user->time=new CDbExpression('NOW()'); $user->status=1; $user->save(); ... 我得到了这个错误: 调用未定义的方法stdClass::save() 怎么了?哦,我看你需要测

我和易有问题。我在控制器中有以下代码:

...
$user = User::model()->find("user_id = :id AND type='1'", array('id'=>$user->id));
$user->time=new CDbExpression('NOW()'); 
$user->status=1;
$user->save();
...
我得到了这个错误:

调用未定义的方法stdClass::save()


怎么了?

哦,我看你需要测试一下是否有用户 只要做:

if($user)
你的模型是extand和CactiveRecord吗

您应该显示错误以了解问题所在

if(!$user->save()){
   var_dump($user->getErrors());
}

这将是有帮助的

你的错误是经典到knwo到底出了什么问题!以下是一个可能是您错误原因的问题:

当您找到您的用户时,如果它没有找到它,该方法将返回
false
,那么其余的操作将失败。您应该执行以下操作:

$user = User::model()->find("user_id = :id AND type='1'", array('id'=>$user->id));
if($user !== null) {
    $user->time=new CDbExpression('NOW()'); 
    $user->status=1;
    $user->save();
}
如果($model->load(Yii::$app->request->post()){

$model->startDate=$modifiedStartDate;
$model->timeFrom=$modifiedFromTime;
$model->timeTo=$modifiedToTime;
//回声';
//打印($model);退出;
$model->save();
//返回$this->redirect(['view','id'=>$model->id]);
返回$this->redirect(['timelog/index']);
}否则{
返回$this->render('create',
[
'model'=>$model,
]);
}

//使用$method->save()时发生错误的原因;函数。

仍然收到错误:调用未定义的方法stdClass::save(),我收到了如下验证错误:
时间戳不能为空。
,我本以为这些错误会是致命的。仍然收到错误:调用未定义的方法stdClass::save())您能在if条件之后对$user执行var_转储并显示结果吗?
object(stdClass)#158(2){[“time”]=>object(cdbeexpression){[“expression”]=>string(5)“NOW()”[“params”=>array(0){}[“e”:“CComponent”:private]=>NULL[“m”:“CComponent”:private]=>NULL[“status”]=>int(1)}
用户模型是否有自己的find()方法?我认为用户模型有find()方法,它覆盖了CActiveRecord的find()方法,并且返回的不是CActiveRecord::find()通常返回的结果。您的转储非常小,就像返回的对象不是CActiveRecord对象一样。正如@andrzej1_1所说,您是否覆盖了模型中的find方法?
        $model->startDate = $modifiedStartDate;
        $model->timeFrom = $modifiedFromTime;
        $model->timeTo = $modifiedToTime;
        //echo '<pre>';
        //print_r($model);exit;
        $model->save();
        //return $this->redirect(['view', 'id' => $model->id]);
        return $this->redirect(['timelog/index']);
    } else {
        return $this->render('create',
                        [
                    'model' => $model,
        ]);
    }