Загрузка файла CakePHP 2.0, $ data не имеет никакого эффекта - PullRequest
2 голосов
/ 01 марта 2012

Я работаю над сайтом, который позволит мне загружать файлы на сервер, я пытаюсь переименовать файл в соответствующий идентификатор mysql, который вставляется вместе с информацией.

Это вроде работает, но каждый раз, когда я загружаю файл, он перезаписывает последний загруженный файл.

Это мой код

   function uploadFile() {
    $file = $this->data['Upload']['file'];
    $pid = mysql_insert_id();
    if ($file['error'] === UPLOAD_ERR_OK) {
        if (move_uploaded_file($file['tmp_name'], APP.'webroot/files/uploads'.DS."$pid.mp4")) {
            $this->data['Upload']['name'] = $file['name'];
            $this->data['Upload']['eventname'] = $file['evetname'];
            $this->data['Upload']['description'] = $file['description'];
            return true;
        }
    }
    return false;
}

Это ошибки, которые происходят на моем сайте,

Примечание (8): косвенное изменение перегруженного свойства UploadsController :: $ data не оказывает никакого влияния [APP / Controller / uploads_controller.php, строка 58] Примечание (8): неопределенный индекс: имя события [APP / Controller / uploads_controller.php, строка 59] Примечание (8): косвенное изменение перегруженного свойства UploadsController :: $ data не имеет никакого эффекта [APP / Controller / uploads_controller.php, строка 59] Примечание (8): неопределенный индекс: описание [APP / Controller / uploads_controller.php, строка 60] Примечание (8): косвенное изменение перегруженного свойства UploadsController :: $ data не имеет никакого эффекта [APP / Controller / uploads_controller.php, строка 60]

Я не совсем понимаю, что происходит на самом деле? Также я должен использовать функцию mysqli_insert_id () вместо mysql_insert_id ()? Я действительно не знаю, как работает mysqli_insert_id (), любая помощь, пожалуйста, ребята ???

1 Ответ

6 голосов
/ 01 марта 2012

Вы пытаетесь манипулировать $this->data, который доступен только для чтения в Cake 2.0. Вы должны использовать новый объект CakeRequest, представленный в Cake 2.0.

То есть $this->data становится: $this->request->data.

Что касается mysql_insert_id(), я не уверен, где вы сохраняете данные в таблицу базы данных. Cake хранит id последней вставленной записи в $this->ModelName->id, так что вы также можете использовать это.

...