Php Kohana 3.0.4 ORM$\创建\列$\更新\列
我在Kohana 3.0.4中的模型声明中有一个问题,即字段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)(这是最佳实践->处理模型中的数据操作),与声明相对应的字段不会更新
$\u created\u column
和$\u updated\u column
。
问题在于:
-当我从控制器创建和更新对象时,数据库中与$\u created\u column
和$\u updated\u column
声明相对应的字段将根据当前创建/修改日期进行修改,就像它应该做的那样
- 当我从模型中创建和更新对象时(使用
,DB::insert
)(这是最佳实践->处理模型中的数据操作),与声明相对应的字段不会更新DB::update
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
,因为这将涉及重写代码的某些部分(即使它们很小)。