Kohana 3.2 ORM多记录更新

Kohana 3.2 ORM多记录更新,kohana,Kohana,如何在Kohana 3.2的ORM中更新多个记录 例如: $menu = ORM::factory('menu'); $menu->where('active','=',1); $menu->active=2; $menu->save(); 不起作用,它会插入一条新记录 谢谢如果您不想硬编码表名,可能类似于以下内容 DB::update(ORM::factory('menu')->table_name()) ->set(array('active' => '

如何在Kohana 3.2的ORM中更新多个记录

例如:

$menu = ORM::factory('menu');
$menu->where('active','=',1);
$menu->active=2;
$menu->save();
不起作用,它会插入一条新记录


谢谢

如果您不想硬编码表名,可能类似于以下内容

DB::update(ORM::factory('menu')->table_name())
->set(array('active' => '2'))
->where('active', '=', '1')
->execute();

是否有任何理由希望使用ORM而不是查询生成器执行此操作?因为应用程序通常使用“Model_Menu extensed ORM”类。这不是参数。Kohana的ORM基于查询生成器,因此它只支持查询生成器功能的子集。使用原始查询生成器,您可以通过单个SQL查询设置所需内容,而不是对每个记录使用单独的查询。这里使用ORM而不是查询生成器的唯一合理理由是:1)可读性问题(在ORM层而不是更低的查询生成器层上执行任务),2)模型中包含的自定义业务逻辑(例如
save()
method)。这里哪一种情况是这样的?感谢您提供的有用信息。我将重写模型。我没有建议重写模型-我只是说它们可能会有所帮助,但在这方面,使用Kohana的查询生成器可能更有效。ORM只是一个抽象层——如果需要,就不要切换。我们的细节太少,无法帮助您。