2013-07-01 3 views
1

어떤 모델에도 실제로 포함되지 않는 입력이있는 양식이 있습니다. '비밀번호 확인'및 '이 조건을 수락합니다.'등의 내용이 표시됩니다.CakePHP : 모델에없는 입력의 유효성을 검사하는 모범 사례

이와 같은 상황에 가장 적합한 방법은 무엇입니까?

나는 다음과 같은 가능성에 대해 생각 :

  1. 이 유효성 검사 규칙과 컨트롤러 액션 내부의 임시 모델을 만듭니다.
  2. 이러한 입력에 대해 별도의 모델을 생성하십시오.
  3. 케이크 2.x의 몇 가지 다른 기능은이 상황에 특별히 맞습니까?

나는 이것에 대한 많은 답변 게시물을 읽었지 만 답변은 케이크의 v1.x에 대한 것이며 오래된 것일 수도 있고 사람들은 현재 컨트롤러와 가장 가까운 관계로 모델 내에 모든 것을 넣을 것을 제안합니다. . 가장 좋은 방법은 무엇입니까?

감사합니다.

답변

3

나는 그것에 대한 행동을 사용합니다.

비밀번호 추가/편집 : 이 https://github.com/dereuromark/tools/blob/master/Model/Behavior/PasswordableBehavior.php (http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/ 참조)

는 조건을 수락 : 이 https://github.com/dereuromark/tools/blob/master/Model/Behavior/ConfirmableBehavior.php 이것은 모두 다시 그것을 반복하지 않고 나에게 DRY 접근을 허용

(http://www.dereuromark.de/2011/07/05/introducing-two-cakephp-behaviors/ 참조) 내가 사용하는 다른 모델. 난 그냥 동적으로 ($this->Behaviors->load()) 또는 $actsAs을 통해 추가하고 PHP5.4의 특성과 유사한 확장 기능을 사용할 수 있습니다.

하나의 앱에 대한 비밀번호 인증 자료를 APP 사용자 모델에 넣을 수 있습니다. 하지만 여러 앱을 관리하는 순간 코드가 어느 시점에서 복제되어야합니다. 그래서 내가 비헤이비어 접근법을 선호합니다. 그러나 일부 상황에서는 각 모델에 유효성 검사를 생략하는 것이 불가능하거나 비현실적도 아닙니다. 임시 모델 등을 만들면 안됩니다. 그것은 일반적으로 잘못된 길입니다.

+0

굉장한 감사합니다! 이것은 내가 찾고 있었던 바로 그 것이다. :) – s0ndeb0k

관련 문제