0

有没有办法使用 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 对象进行更新查询?

4

1 回答 1

1

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

例如

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

并回答你的问题。第二种方法似乎是正确的方法:)一旦你完成了上面的“额外”查询就应该消失了

于 2013-08-19T12:49:22.807 回答