변경 사항이 어떤 상태 옵션을 가질 수 있는지 결정할 수있는 간단한 함수를 만들었습니다. 예를 들어 '보류 중'상태는 '활성', '거부 됨'및 '제거됨'으로 만 변경할 수 있습니다.상태 전환 확인
나는이 클래스를 사이트 전체에서 비교할 목적으로 상태 열에 필요한 레코드를 참조하는 상수로 저장합니다.
내 '전환'배열은 다음과 같습니다 -이 방법에 대한 의견은 무엇
protected static $allowedTransitions=array(
Booking::STATUS_ACTIVE=>array(Booking::STATUS_REVOKED),
Booking::STATUS_PENDING=>array(Booking::STATUS_ACTIVE, Booking::STATUS_REJECTED, Booking::STATUS_REVOKED),
Booking::STATUS_REJECTED=>array(Booking::STATUS_ACTIVE, Booking::STATUS_REVOKED),
Booking::STATUS_REVOKED=>array()
);
? 배열에 상수를 추가하는 것은 좋지 않은 것처럼 보입니다.
상태 요청을 수행 할 수 있는지 확인하기 위해 statusTransitions()에 현재 상태 유형 ID를 전달하여 변경이 유효한지 확인할 수 있습니다.
public static function statusTransitions($statusTypeId) {
return self::$allowedTransitions[$statusTypeId];
}
나는 어디서 왔는지를 볼 수 있지만, 기술적 인 관점에서 보았을 때 클래스 상수로부터 변수의 배열을 생성하는 것을 코딩 할 때 보였다. 결국에는 전이가 포함 된 표를 생성하고 관련 ID를 간단히 질의했습니다. 이렇게하면 나중에 쉽게 수정할 수 있습니다. –