自从我开始学习 MVC 以来,我一直在我的控制器中验证我的表单数据,这是我在浏览 CodeIgniters 代码时养成的习惯,但我了解到它执行某些操作的方式并不是最好的,它只是得到了这份工作完毕。
所有表单数据都应该由域对象验证吗?如果是这样,应该像这样在二传手中完成
public function setFirstName($firstName) {
// Check if the field was required
if(!$firstName) {
throw new InvalidArgumentException('The "First name" field is required');
}
// Check the length of the data
// Check the format
// Etc etc
}
另外,例如,如果我正在处理基本用户注册,我的User
班级没有$confirmPassword
属性,所以我不会这样做
$user->setConfirmPassword($confirmPassword);
.
检查输入的两个密码是否相等的一种方法是设置$password
并执行类似的操作
$user->setPassword($password);
if(!$user->matchPassword($confirmPassword)) {
throw new PasswordsNotEqualException('Some message');
}
这将在我认为的服务层中完成?
任何可以帮助我朝着正确方向前进的建议都会很棒。谢谢。