为什么Product对象有一个名为Save?
的方法在我看来,产品在数据库中保存是错误的。 一个产品不仅应该只知道自己的责任吗? 我不明白AR的目的或问题不在我的解释中吗?
$product = new Product();
$product->name = 'sample post';
$product->price = 10;
$product->save();
答案 0 :(得分:2)
Active Record的一般原则是对象的实例是数据存储中的单行,并且该对象完全负责本身的持久性。
该对象只有一个责任,管理自身的持久性。
在数据库表或视图中包装行的对象,封装数据库访问,并在该数据上添加域逻辑。
对象包含数据和行为。大部分数据都是持久性的,需要存储在数据库中。 Active Record使用最明显的方法,将数据访问逻辑放在域对象中。这样,所有人都知道如何在数据库中读取和写入数据。