我正在构建一个站点,并且在多个模型中有多个代码段,需要在事务中运行,所以如果出现故障,代码将回滚。MVC跨多个模型的事务性PDO
说我有一个简单的形式来注册一个用户。
<form action="/register" method="POST">
<div>
<label for="username">Username</label>
<input type="text" name="username" id="username" />
</div>
<div>
<label for="username">Password</label>
<input type="password" name="password" id="password" />
</div>
<div>
<label for="username">Email</label>
<input type="text" name="email" id="email" />
</div>
<div><input type="submit" name="submit" value="submit" /></div>
</form>
在我的系统中创建用户时,我需要自动将它们放在一个角色中。
要插入用户表,我使用我的用户模型。然后我需要插入发生在单独模型中的角色表。如果所有工作都需要在不同的模型中完成,那么我应该在哪里创建连接以跨多个模型传递以允许事务工作?
// Start Transaction.
// Create new user based on posted variables. UserModel
// Add user to a given role. UserRoleModel -> Table contains UserId and RoleId
// Commit transaction.
也许我困惑的是,所有的工作都要创造一个用户在我的用户模型中?即使这个工作跨越了不仅仅是用户数据库表?我的假设是数据库中的每个表都应该有一个模型类,并且该模型类应该只在该表内工作?我错了吗?
感谢
以及在我的情况下,我使用的表格模型的最外层做涉及交易,其他表。你使用哪个框架 – Ibu 2011-05-15 22:41:34
没有框架。真的想学习和理解最好的方法。所以你说你的UserModel里面,创建,你会插入到用户表,然后插入到user_role表? – Dietpixel 2011-05-15 22:44:22