例如,假设我有以下(虚构的)数据表: 表:用户
pk_user_id
fk_userrole_id
username
表格:userroles
fk_userrole_id
role
现在使用ORM,我可以将这个放在一个模型文件中:
$user = ORM::load('users', $id);
现在$user已经是我的对象了,可以轻松进行延迟加载:
(如果事情能够自动变成单数/复数形式,那就更好了)
foreach ( $user->userroles()->role as $role )
{
echo $role;
}
现在使用仓储模式需要为用户和角色创建一个仓储。仓储还需要各种函数来检索数据并将其存储。此外,它还需要使用实体模型。所以我不得不创建所有这些。对我来说,这看起来是很多工作...当我可以像上面描述的那样使用ORM轻松获取数据。而且我也可以轻松地存储数据:
ORM::store($user);
在这种情况下,它不仅会将用户对象存储到数据库中,还会存储我对“Roles”对象所做的任何更改。因此,没有必要进行额外的工作,就像您在仓储模式中需要的那样...
因此,我的问题基本上是,为什么我要在ORM中使用仓储模式?我看过使用该模式的教程(如Doctrine)。但是实际上,它对我来说毫无意义...有人能解释一下它与ORM结合使用的原因吗..??