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

如何在不加载orm的情况下更新记录?,orm,kohana-3.3,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

有没有一种方法可以使用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对象进行更新查询?

获得“
显示..
的完整列”查询的原因是您没有定义存储该对象的表列数据的
$\u table\u columns
。Kohana需要知道这些,以便您可以为该对象设置值

例如

回答你的问题。第二种方法似乎是正确的:)完成上述操作后,“额外”查询就应该消失了

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