Kohana 3.0.4 ORM $ _created_column $ _updated_column - PullRequest
0 голосов
/ 17 ноября 2011

У меня проблема в объявлении модели в Kohana 3.0.4 с полями $_created_column и $_updated_column.Проблема заключается в том, что: - Когда я создаю и обновляю объекты с моих контроллеров, поля в базе данных, соответствующие декларации $_created_column и $_updated_column, изменяются в соответствии с текущей датой создания / модификации, как и должно быть.1005 *

  • Когда я создаю и обновляю объекты из моделей (используя DB::insert, DB::update) (это лучший метод -> обработка операций с данными из моделей), поля, соответствующие объявлению, НЕ обновляются.

Код для DB :: update и DB :: insert:

    public function add_productimage($zoom, $particular, $thumbnail, $presentation, $product, $order){   
    $insert_id = DB::insert('product_image', array('zoom','particular','thumbnail','presentation','product','order'))
        ->values(array($zoom, $particular, $thumbnail,$presentation, $product, $order))
        ->execute();
    return $insert_id;
}

Есть идеи почему?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Вы не используете ORM для вставок и обновлений, поэтому эти конкретные настройки не применяются.Вы используете DB Query Builder вместо ORM. Используйте ORM для вставок / обновлений , и тогда вы будете использовать лучшие практики в этом случае.

Кстати: ваша версия Kohana (3.0.4) должна быть легко обновлена ​​до 3.0.12 (самая последняя в строке 3.0.x), и это исправит несколько ошибок, существовавших в 3.0.4.

1 голос
/ 17 ноября 2011

Прежде всего, я не вижу причин не использовать ORM в вашем методе:

public function add_productimage($post)
{
   $this->values($post);
   $this->save();
}

Это предпочтительный способ, так как вы будете проверять свою модель перед сохранением.

Чтобы ответить на ваш вопрос - вы пытались сделать это точно так же, как документы говорите?
Да, также убедитесь, что вы указали на правильный стол - в вашем примере это product_image, а стиль Кохана - product_images. Может быть, вы забыли добавить 's' в конце.

...