2016-03-15 09:40:04 3978次浏览 5条回答 0 悬赏 10 金钱

我知道yii可以用 yii::$app->request->get() 获取所有的get参数

但是为什么我直接打印 Print_r($_GET['test']); 的时候报错

PHP Notice – yii\base\ErrorException

Undefined index: xp

我记得1里面是没有这样报错的 是不是有什么地方设置?

最佳答案

  • Sor 发布于 2016-03-22 08:59 举报

    $_GET数组中没有xp这个键 你使用了当然会有警告

    2 条回复
    回复于 2016-03-22 09:27 回复

    哦 我知道了 这就是个提醒 应该是和报错等级有关的。
    顺便问一下 如何设置yii2框架的报错等级 好像只有开发模式和线上模式的设置

    回复于 2016-03-22 10:16 回复

    yii2 应该也是捕获php的错误,也是根据php.ini来定的

  • 回答于 2016-03-15 15:00 举报

    请问你在哪个地方打印$_GET的,$_GET真正被处理的时候在这里,假设是基于?r=这样子的

    public function resolve()
    {
            $result = Yii::$app->getUrlManager()->parseRequest($this);
            if ($result !== false) {
                list ($route, $params) = $result;
                if ($this->_queryParams === null) {
                    // 罪恶的代码
                    $_GET = $params + $_GET; // preserve numeric keys
                } else {
                    $this->_queryParams = $params + $this->_queryParams;
                }
                return [$route, $this->getQueryParams()];
            } else {
                throw new NotFoundHttpException(Yii::t('yii', 'Page not found.'));
            }
    }
    
    1 条回复
    回复于 2016-03-15 17:39 回复

    在sitecontroller 的 actionIndex中

        public function actionIndex()
        {
            print_r($_GET['xp']);
            return $this->render('index');
        }
    
  • 回答于 2016-03-15 19:15 举报

    我在windows下不会报错,但如果放在服务器端,就会出错,可能跟php环境有问题,类似的问题可能还会有好几个地方。
    所以在使用post和get接收数据的时候,首先是使用Yii::$app->request->get() Yii::$app->request->post(),如果使用过一次之后,获取其他参数也可以使用$_GET$_POST

  • 回答于 2016-03-16 17:42 举报

    当然会报错了,要自己做判断 ,所以不建议直接用$_GET $_POST 而是用yii封装好的方法

  • 回答于 2016-03-18 14:19 举报

    用框架提供的request,存在必然有道理

您需要登录后才可以回答。登录 | 立即注册
huaixiaoya
副总裁

huaixiaoya 湖北武汉

注册时间:2014-06-16
最后登录:2017-03-06
在线时长:41小时5分
  • 粉丝12
  • 金钱4745
  • 威望0
  • 积分5155

热门问题