【问题标题】:Unknown Method – yii\base\UnknownMethodException Calling unknown method: yii\web\Request::post()未知方法 – yii\base\UnknownMethodException 调用未知方法:yii\web\Request::post()
【发布时间】:2016-09-16 13:24:57
【问题描述】:

我是 yii2 的新手,我已经创建了一个表单,但是在加载页面时它显示以下错误:

未知方法 – yii\base\UnknownMethodException

调用未知方法:yii\web\Request::post()

studController 中的代码

public function actionStudform()
    {
        $data = Stud::find()->asArray()->all();   

        $model = new Stud;
        if(($model->load(Yii::$app->request->post())) && $model->validate())
        {            
              echo "validate";
        }           
        else
        {
            return $this->render('studform',['model'=>$model,'data'=>$data]);
        }
    }

【问题讨论】:

  • 向你的控制器展示所有代码

标签: php yii2


【解决方案1】:

好的

我也遇到过这个问题,我也解决了

在 yii2 中,您必须检查表单是否已发布? 如果表单已发布,那么您必须获取数据或打印数据

试试我的代码,它在我的情况下也能正常工作

public function actionStudform()
    {
        $data = Stud::find()->asArray()->all();   

        $model = new Stud;
        $request = Yii::$app->request;
        if($request->isPost)
        {
            if(($model->load($request->post)) && $model->validate())
            {                    
                print_r($request->post['Stud']);
            }
            return $this->render('studform',['model'=>$model,'data'=>$data]);
        }
        else
        {
            return $this->render('studform',['model'=>$model,'data'=>$data]);
        }
    }

【讨论】:

    【解决方案2】:

    在你的控制器中检查命名空间use Yii

    我认为这又是作曲家依赖解析器在做意想不到的事情:

    • 您在 composer.json 中需要 yiisoft/yii2,但没有安装 composer 资产插件。
    • 然后依赖解析器找不到供应商 bower-asset 的软件包,因此它会查找没有冲突的 yiisoft/yii2 的其他版本
    • 结果是安装了要安装的yii2 beta版

    如前所述,正确的解决方案是安装composer-asset-plugin

    php composer.phar global require "fxp/composer-asset-plugin:1.0.*@dev"
    

    【讨论】:

      猜你喜欢
      • 2014-11-11
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多