2012-01-08 3 views
0

가능한 중복 :
MVC in PHP - fat model or fat controller?MVC - 검증

Hеllo의 evеrybody! MVC의 유효성 검사에 대한 질문이 있습니다. Constructor 또는 Model과 같은 입력 검증을 작성하는 것이 더 좋습니다. 일부 잘 알려진 프레임 워크 문서에서는 컨트롤러에서 작성하고 다른 모델에서는 모델로 작성합니다. 가능하다면 합리적인 의견을 제시하십시오. 감사.

+0

예, 감사, 맞아. 죄송 해요. – user997379

답변

1

컨트롤러에 유효성 검사가 있으면 최종적으로 유효성 검사를보다 유연하게 할 수 있습니다. 그러나 컨트롤러에서 엉망이되어 코드의 가독성과 유지 보수성이 떨어집니다.

두 가지 옵션 만 고려할 경우 모델에서 유효성 검사가 더 적합한 것으로 보입니다. 그러나 데이터 주석은 필요할 때마다 유효성 검사의 유연성을 충분히 제공하지 못할 수도 있습니다.

는 아직 쉽게보기 모델로 통합, 완전히 검증을 분리 Fluent Validation project으로 보는 것이 좋습니다. 당신이하려는 코드의

예는 그것으로 쓰기 :

[Validator(typeof(PersonValidator))] 
public class Person { 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Email { get; set; } 
    public int Age { get; set; } 
} 

public class PersonValidator : AbstractValidator<Person> { 
    public PersonValidator() { 
     RuleFor(x => x.Id).NotNull(); 
     RuleFor(x => x.Name).Length(0, 10); 
     RuleFor(x => x.Email).EmailAddress(); 
     RuleFor(x => x.Age).InclusiveBetween(18, 60); 
    } 
} 
1

컨트롤러가 컨트롤러가 아닌 유효한 상태인지 아닌지를 결정해야합니다. 따라서 컨트롤러가 아닌 모델에 유효성 검사 코드가 있어야한다고 말합니다.

+0

감사합니다. 나는 또한 모델을 선호한다. 내가 도울 수 – user997379

+0

user997379 기뻐 @, 당신은 당신이에있는 상황에 따라 최선의 판단을 사용해야합니다, 모든 상황은 잠재적으로 다를 수 있지만 기억, 그래서 더 열심히하고 모두가 따라하는 빠른 규칙이 없다. –