【发布时间】:2012-05-02 07:46:25
【问题描述】:
如何更新 Kohana 3.2 的 ORM 中的多条记录?
例如:
$menu = ORM::factory('menu');
$menu->where('active','=',1);
$menu->active=2;
$menu->save();
不起作用,它会插入一条新记录。
谢谢
【问题讨论】:
-
您是否有任何理由希望使用 ORM 而不是查询构建器来执行此操作?
-
因为应用程序已经在使用“Model_Menu extends ORM”类了。
-
这不是论据。 Kohana 的 ORM 基于查询构建器,因此它仅支持查询构建器功能的子集。使用原始查询构建器,您将能够使用单个 SQL 查询设置您需要的内容,而不是为每条记录使用单独的查询。这里使用 ORM 而不是查询构建器的唯一合理论点是:1)可读性问题(在 ORM 层而不是较低的查询构建器层上执行任务),2)模型中包含的自定义业务逻辑(例如,在
save()方法中)。这是哪一种? -
感谢您提供的信息很有帮助。我将重写模型。
-
我没有提议重写模型 - 我只是说它们可能会有所帮助,但在这方面使用 Kohana 的查询构建器可能更有效。 ORM 只是一个抽象层——如果你需要它,那就不要切换。我们的详细信息太少,无法为您提供帮助。
标签: kohana