2016-03-08 1 views
1

У меня есть сайт в Yii. Он работал отлично. Но, обновляя MySql, я страдаю от некоторых ошибок.Неопределенный индекс: XXXXX в php 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'] в мой URL, то он будет работать, но я не могу этого сделать, потому что везде на моем сайте. И ошибка возникает после обновления Mysql. И что же мне делать?

Спасибо,

+1

Вы уверены, что это была только модернизация MySQL, а не PHP, или, по крайней мере, ее php.ini? Обе версии, отсутствующая конфигурация [date.timezone] (http://docs.php.net/datetime.configuration#ini.date.timezone) и отсутствующий параметр REQUEST практически не связаны с MySQL. – VolkerK

ответ

1

Ok я понятия не имею, что код должен делать, но первое, что я замечаю:

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 is false.

+0

Я ценю вас, но я думаю, что ошибка отличается от того, что, когда я пытаюсь выполнить код ниже, также возникает ошибка: '

renderPartial('/layouts/navigation');?>
'' он показывает Undefined индекс: sub' –

+2

же проблема, $ _REQUEST [ 'суб'] не установлен, и не проверяется здесь. Вы должны проверить страницу, на которой установлены запросы –

+0

В этом случае я должен определить '$ _REQUEST ['sub']' previouly? Это вызовет столько проблем, потому что на моем сайте около тысячи времени !!! И раньше он работал. –

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 блок. Но на самом деле вы добавите инструкции за пределы блока.

+0

Но когда я пытаюсь: 'if ($ _ REQUEST ['sub']! = 'Expired') {$ this-> renderPartial ('/ layouts/navigation'); } 'then error is Undefined index: sub' –

+0

@Dharmeshpatel Честно говоря, я не могу объяснить, почему, потому что я не вижу контекста, не вижу ваш код. Вероятно, вы пытаетесь получить индекс без проверки наличия индекса. –

Смежные вопросы