有没有办法在没有任何额外查询的情况下使用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对象进行更新查询?
答案 0 :(得分:1)
获得show full columns for ..
查询的原因是您没有定义$_table_columns
,其中存储了该对象的表列数据。 Kohana需要知道这些,因此您可以为该对象设置值。
E.g。
protected $_table_columns = array(
'id' => array('type' => 'int'),
'name' => array('type' => 'string'),
.......
);
并回答你的问题。第二种方式似乎是正确的方法:)一旦你完成了上面的'额外'查询应该不见了