【发布时间】:2010-09-19 13:18:03
【问题描述】:
想象一个像这样的User 模型:
class User {
/**
* ...some mapping info...
*/
private $username;
/**
* ...some mapping info...
*/
private $password;
public function setUsername($username) {
$this->username = $username;
}
public function setPassword($password) {
$this->password = $password;
}
}
提交新User的示例表单:
<form action="/controller/saveUser" method="post">
<p>Username: <input type="text" name="username" /></p>
<p>Password: <input type="text" name="password" /></p>
</form>
目前在我的控制器中,我保存了一个新的User,如下所示:
public function saveUser() {
$user = new User();
$user->setUsername($_POST['username']);
$user->setPassword($_POST['password']);
$entityManager->persist($user);
}
这意味着,为我通过表单收到的每个属性调用 setter 方法。
我的问题:Doctrine 中是否有一种方法可以让您自动将表单数据/数组结构映射到 Doctrine 模型? 理想情况下,可以使用数组填充嵌套对象图类似的结构。
理想情况下,我可以将控制器代码更改为以下内容(伪代码/示例):
public function saveUser() {
$user = Doctrine::populateModelFromArray('User', $_POST); // does this method exist?
$entityManager->persist($user);
}
提前感谢您的任何提示!
编辑: 学说 1 (http://www.doctrine-project.org/projects/orm/1.2/docs/manual/working-with-models%3Aarrays-and-objects%3Afrom-array/en) 中似乎存在类似的东西 - 那么,学说 2 中是否存在等价物?
【问题讨论】: