如何在不加载orm的情况下更新记录?

时间:2013-08-16 23:45:21

标签: orm kohana-3.3

有没有办法在没有任何额外查询的情况下使用ORM模型更新表中的记录?

我知道我可以简单地使用DB对象来执行原始查询,但我想用ORM对象来做。

我有以下代码。

$orm = ORM::factory("myobject",1);
$orm->name = "new name";
$orm->save();

代码的问题在于它执行选择查询然后执行更新查询。

我也尝试了以下内容。

ORM::factory("myobject")->values(array("id"=>1, "name"=>"my new name"))-save();

此查询的问题是ORM执行“显示来自myobject的完整列

如何在不执行任何额外查询的情况下对ORM对象进行更新查询?

1 个答案:

答案 0 :(得分:1)

获得show full columns for ..查询的原因是您没有定义$_table_columns,其中存储了该对象的表列数据。 Kohana需要知道这些,因此您可以为该对象设置值。

E.g。

protected $_table_columns = array(
    'id'   => array('type' => 'int'),
    'name' => array('type' => 'string'),
    .......
);

并回答你的问题。第二种方式似乎是正确的方法:)一旦你完成了上面的'额外'查询应该不见了