CI: неопределенная переменная - PullRequest
1 голос
/ 26 июля 2011

Я знаю, что были заданы похожие вопросы, но я все еще не смог решить мою проблему.Когда мое представление загружается, я получаю сообщение об ошибке ниже и знаю, что в $ id есть значение.

Сообщение: неопределенная переменная: id Имя файла: admin / upload_form.php Номер строки: 17

Контроллер:

public function getEventNameById( $id ) {
            $q = $this->event_model->getEventNameById( $id );            
            echo "Event Name: ".$q."</p>";
            $data['id'] = $id;            
            $this->load->view('admin/upload_form',array('error' => ' ' ), $data);
}

Просмотр:

<body>
<div>
<?php echo $error;?>
<p>Event Image:</p>
<?php echo form_open_multipart('admin_upload/do_upload');?>

<input type="file" name="userfile" size="20" />
<br /><br />
<input type="hidden" id="iEventID" name="iEventID" value="<?php echo $id;?>" />
<input type="submit" value="upload event image" /> <input type="button" value="close" 
onclick="window.close()">

</form>
</div>
</body>

Что мне нужно сделать, это запрос информации на основе идентификатора, а затем передать этот идентификатор в мое представление, которое будетзатем передайте идентификатор обратно в другую функцию контроллера для использования при обновлении записи в моей базе данных.Другими словами, мне нужно постоянно сохранять удостоверение личности.

Любая и вся помощь очень ценится.

1 Ответ

1 голос
/ 26 июля 2011

Вы неверно передаете данные просмотра:

Ваш код передает 3 параметра:

$this->load->view('admin/upload_form', array('error' => ' ' ), $data);
//                |        1         |            2          |   3   |

Вы должны передать все данные второму параметру:

$this->load->view('admin/upload_form', array('error' => ' ' ) + $data);
//                |        1         |                  2             |

Третий параметр должен быть логическим, независимо от того, следует ли печатать данные напрямую (по умолчанию false) или сохранять их в переменной (true).

Я просто использовал оператор + для объединения массивов, но, вероятно, было бы лучше использовать это:

$data['error'] = ''; // Not sure why this is needed, but I assume it is
$data['id'] = $id;   
$this->load->view('admin/upload_form', $data);

Произошло то, что ваш массив $data вообще не был передан представлению, следовательно, неопределенная переменная.

Ссылка: http://codeigniter.com/user_guide/libraries/loader.html

...