Kohana ORM и проблема с загрузкой файлов ... установка логотипа записи равным логотипу записи при отсутствии изображения - PullRequest
0 голосов
/ 20 июля 2011

Это вызывает эту ошибку ...

Операнд должен содержать 1 столбец (и) [ОБНОВЛЕНИЕ record SET logo = ('', '', '', 4, 0) ГДЕ id = '0']

if ($_FILES['logo']['name'] == '') {
    $record->logo = $record->logo;
}
else{
    // INSERTION WORKS FINE
}

Я также использую модуль Formo, если это имеет значение ...

Есть ли способ просто удалить логотип из сценария вставки или что-то подобное ... поскольку $record->logo = $record->logo вызывает сбой?

1 Ответ

0 голосов
/ 02 августа 2011
$record->logo = $record->logo;

Может вызвать ошибку, если не установлен $ record-> logo. По крайней мере, вы должны сказать:

$record->logo = '';

, но лучше всего использовать Validation::factory($_FILES)->check()

if ( $logo->check() ) {
  // do your insert here
}

Это всего лишь фрагмент от того, когда мне в последний раз удавалось это:

    $logo = Validation::factory($_FILES);
    $logo->rule('logo', 'Upload::not_empty')->rule('logo', 'Upload::type', array(':value', array('jpg', 'png', 'gif')));
    if ( $logo->check() ) {
      $logo = Upload::save($_FILES['logo'], NULL, 'assets/uploads/logo');
      $image = ORM::factory('image')->where('id', '=', $id)->where('type', '=', 'logo')->find();
      $path = explode('/', $logo);
      $path = end($path);
      $image->path = 'assets/uploads/logo/' . $path;
      $image->playlist_id = $id;
      $image->type = 'logo';
      $image->save();
    }
...