Php 理解MVC中的ORM模型

Php 理解MVC中的ORM模型,php,model-view-controller,oop,orm,Php,Model View Controller,Oop,Orm,我不能完全理解MVC中的ORM模型 所以我把symfony和学说结合起来。创建了理论模型 这是否意味着我不必创建任何模型?理论模型是我唯一需要的模型吗 我应该将使用条令模型的代码放在哪里: 例如 此代码应该在控制器中还是在其他型号中 我应该在哪里验证这些字段(检查数据库中是否存在,电子邮件是否为电子邮件等) 有人能解释一下吗 谢谢 这是否意味着我不必这么做 创建模型吗?这是教义吗 模型我需要的唯一模型是什么 这取决于您对模型的定义。就Symfony而言,条令类是您的模型,在文档中被称为。一般来说

我不能完全理解MVC中的ORM模型

所以我把symfony和学说结合起来。创建了理论模型

这是否意味着我不必创建任何模型?理论模型是我唯一需要的模型吗

我应该将使用条令模型的代码放在哪里:

例如

此代码应该在控制器中还是在其他型号中

我应该在哪里验证这些字段(检查数据库中是否存在,电子邮件是否为电子邮件等)

有人能解释一下吗

谢谢

这是否意味着我不必这么做 创建模型吗?这是教义吗 模型我需要的唯一模型是什么

这取决于您对模型的定义。就Symfony而言,条令类是您的模型,在文档中被称为。一般来说,模型不仅仅是处理数据持久性的类。它们可以是包含业务规则/逻辑的任何特定于域的类。例如,您的用户会话类apps/yourapp/lib/myUser.class.php可以称为amodel,因为您在Symfony中找不到这样的名称

我应该将使用条令模型的代码放在哪里:

这取决于你在做什么。它可能在控制器中,也可能在另一个模型中,无论我们谈论的是基于条令的类,还是其他不基于条令的模型类。但绝对不在视图中:-)

我应该在哪里验证这些字段(检查它是否存在于 数据库,该电子邮件是电子邮件等)

通常在Symfony中,这种情况发生在表单类中。对于生成的每个模型类,它都会获得一个关联的表单和过滤器类。表单有字段,字段有附加的验证器。您通常在控制器中设置表单,然后为其提供数据,表单验证并处理错误。在检查一个项目是否存在方面,你通常不需要这样做。您尝试该操作,然后捕获错误并执行适当的操作。如果您试图添加一个已经存在的记录,将抛出一个异常(来自数据库生成的复制键错误)

$phoneIds = array();

$phone1 = new Phonenumber();
$phone1['phonenumber'] = '555 202 7890';
$phone1->save();

$phoneIds[] = $phone1['id'];

$phone2 = new Phonenumber();
$phone2['phonenumber'] = '555 100 7890';
$phone2->save();

$phoneIds[] = $phone2['id'];

$user = new User();
$user['username'] = 'jwage';
$user['password'] = 'changeme';
$user->save();

$user->link('Phonenumbers', $phoneIds);