Php Kohana 3.0.4 ORM$\创建\列$\更新\列

Php Kohana 3.0.4 ORM$\创建\列$\更新\列,php,orm,kohana,Php,Orm,Kohana,我在Kohana 3.0.4中的模型声明中有一个问题,即字段$\u created\u column和$\u updated\u column。 问题在于: -当我从控制器创建和更新对象时,数据库中与$\u created\u column和$\u updated\u column声明相对应的字段将根据当前创建/修改日期进行修改,就像它应该做的那样 当我从模型中创建和更新对象时(使用DB::insert,DB::update)(这是最佳实践->处理模型中的数据操作),与声明相对应的字段不会更新

我在Kohana 3.0.4中的模型声明中有一个问题,即字段
$\u created\u column
$\u updated\u column
。 问题在于: -当我从控制器创建和更新对象时,数据库中与
$\u created\u column
$\u updated\u column
声明相对应的字段将根据当前创建/修改日期进行修改,就像它应该做的那样

  • 当我从模型中创建和更新对象时(使用
    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;
}

知道为什么吗?

首先,我不认为有任何理由不在方法中使用ORM:

public function add_productimage($post)
{
   $this->values($post);
   $this->save();
}
这是首选方法,因为这样可以在保存之前验证模型

回答您的问题-您是否尝试过与say完全相同的方式
哦,还要确保您指向正确的表-在您的示例中,它是
product\u image
,而Kohana样式是
product\u image
。可能您忘记了在结尾添加“s”。

首先,我不认为有任何理由不在您的方法中使用ORM:

public function add_productimage($post)
{
   $this->values($post);
   $this->save();
}
这是首选方法,因为这样可以在保存之前验证模型

回答您的问题-您是否尝试过与say完全相同的方式
哦,还要确保您指向正确的表-在您的示例中,它是
product\u image
,而Kohana样式是
product\u image
。可能您忘记了在末尾添加“s”。

您没有使用ORM进行插入和更新,因此这些特定设置不适用。您使用数据库查询生成器而不是ORM使用ORM进行插入/更新,在这种情况下,您将采用最佳实践


顺便说一下:您的Kohana(
3.0.4
)版本应该可以轻松地更新到
3.0.12
(这是
3.0.x
行中最新的版本),这将修复
3.0.4
中存在的多个bug。您没有使用ORM进行插入和更新,因此这些特定设置不适用。您使用数据库查询生成器而不是ORM使用ORM进行插入/更新,在这种情况下,您将采用最佳实践


顺便说一句:您的Kohana(
3.0.4
)版本应该可以轻松地更新到
3.0.12
(这是
3.0.x
行中最新的版本),这将修复
3.0.4

中存在的多个bug,发布我编辑过的DB::insert和DB::update代码。谢谢发布我编辑过的DB::insert和DB::UPDATE代码。谢谢,所以你说在模型中使用db::不是最佳实践?我应该改为使用orm?如果您仍然使用orm,那么为什么不使用它来保存呢?另一个选择是不使用ORM,只使用纯DB Builder,但会丢失ORM添加的一些重要功能(例如自动验证)。对你来说,我会一直和奥姆在一起。好吧,很公平。非常感谢。向上光栅至3.0.12;“你不需要重写代码吗?@dana:没问题。升级时:视情况而定。基本上,
3.0.12
应该与
3.0.4
兼容,并且应该只修复bug和其他问题,而不更改接口等。因此,如果您没有更改Kohana的核心内容,也没有使用依赖于其错误行为的Kohana的某些元素,那么就不应该重写代码的任何部分。即使会,我也会建议切换到
3.0.12
,它修复了很多bug。我不是建议切换到
3.1
/
3.2
,因为这将涉及重写代码的某些部分(即使它们很小)。所以您说在模型中使用db::不是最佳实践?我应该改为使用orm?如果您仍然使用orm,那么为什么不使用它来保存呢?另一个选择是不使用ORM,只使用纯DB Builder,但会丢失ORM添加的一些重要功能(例如自动验证)。对你来说,我会一直和奥姆在一起。好吧,很公平。非常感谢。向上光栅至3.0.12;“你不需要重写代码吗?@dana:没问题。升级时:视情况而定。基本上,
3.0.12
应该与
3.0.4
兼容,并且应该只修复bug和其他问题,而不更改接口等。因此,如果您没有更改Kohana的核心内容,也没有使用依赖于其错误行为的Kohana的某些元素,那么就不应该重写代码的任何部分。即使会,我也会建议切换到
3.0.12
,它修复了很多bug。我不是建议切换到
3.1
/
3.2
,因为这将涉及重写代码的某些部分(即使它们很小)。