我在User类的控制器中有标准代码
public function actionEdit($username)
{
...
$model = User::findByUsername($username);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
如果我编辑用户,我会收到错误
Call to a member function load() on a non-object
指向$model->load
为什么?
更新
因为我在视图操作中使用了相同的功能并且它完美地运行
public function actionView($username){
$model = User::findByUsername($username);
if($model){
UPDATE2 我已经做了一些更改,现在代码是这样的,没有错误 但是逻辑上没有加载和保存,导致如果转到其他部分又编辑加载而不是查看。
$model = User::findByUsername($username);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'username' => $model->username]);
} else {
return $this->render('edit', [
'model' => $model,
}
答案 0 :(得分:1)
使用
var_dump($model);
要了解什么是$model
。可能它不是模型,检查函数findByUsername()
答案 1 :(得分:0)
确保您的功能正在检查并找到一个,例如
protected function findByUsername($username)
{
if (($model = User::find()->where(['username' => $username])->one()) !== null) {
return $model;
} else {
throw new NotFoundHttpException('not found.');
}
}