未定义的索引:升级MySql后的php yii中的XXXXX

时间:2016-03-08 07:33:34

标签: php mysql yii

我在Yii有一个网站。它工作得很好。但是,当我升级MySql时,我遇到了一些错误。

1。)date():依靠系统的时区设置是不安全的。

但我已经通过定义时区解决了这个问题。

2.。)未定义的索引:注册。

我无法解决它。那么,我该怎么办?我的代码如下:

public function actionIndex() {
     $model = new Supplier('search');
     $model1 = new Registration('search');
     $model->unsetAttributes();
     $model1->unsetAttributes();

     if (isset($_REQUEST['Supplier'] , $_REQUEST['Registration']))
         $model->setAttributes($_REQUEST['Supplier']);
         $model1->setAttributes($_REQUEST['Registration']); // here is the error.

     $this->render('admin', array(
         'model' => $model,
         'model1' => $model1,
     ));
 }

在这里,如果我在我的网址中定义$_REQUEST['Registration'],那么它会起作用,但我不能这样做,因为它在我的网站中无处不在。升级Mysql后出现错误。那么,我该怎么办?

谢谢,

2 个答案:

答案 0 :(得分:1)

好吧我不知道代码应该做什么,但是第一件事我注意到了:

if (isset($_REQUEST['Supplier'] , $_REQUEST['Registration']))
     $model->setAttributes($_REQUEST['Supplier']);
     $model1->setAttributes($_REQUEST['Registration']); // here is the error

这部分缺少花括号。

if (isset($_REQUEST['Supplier'] , $_REQUEST['Registration'])){
     $model->setAttributes($_REQUEST['Supplier']);
     $model1->setAttributes($_REQUEST['Registration']); // here is the error
}

会更有意义。否则,即使isset为假,它也会尝试设置注册。

答案 1 :(得分:1)

您的错误:

if (isset($_REQUEST['Supplier'], $_REQUEST['Registration']))
    $model->setAttributes($_REQUEST['Supplier']);
    $model1->setAttributes($_REQUEST['Registration']); // here is the error.

它与:

相同
if (isset($_REQUEST['Supplier'], $_REQUEST['Registration'])) {
    $model->setAttributes($_REQUEST['Supplier']);
}

$model1->setAttributes($_REQUEST['Registration']); // here is the error.

即使未设置,您也试图获得$_REQUEST['Registration']。所以,要修复它,请更改代码:

if (isset($_REQUEST['Supplier'], $_REQUEST['Registration'])) {
    $model->setAttributes($_REQUEST['Supplier']);
    $model1->setAttributes($_REQUEST['Registration']);
}

对于任何喜欢忽略花括号的人来说,当if块有一个语句时,通常会出错。我强烈建议在任何情况下使用花括号,即使在if块下只有一个语句。

方法不正确:

if (true)
    do_something();

正确方法:

if (true) {
    do_something();
}

如果使用不正确的方法,当您在if块中添加其他指令时,您会遇到很多情况。但实际上你会在块之外添加指令。