찾다

 >  Q&A  >  본문

Laravel의 모델 상속

다음과 같은 클래스가 있다고 가정해 보겠습니다.

나는 Animal을 기본 클래스로, Dog를 Animal의 하위 클래스로, 나머지 두 개를 Dog의 하위 클래스로 원합니다.

Laravel의 모범 사례는 무엇입니까? 4개의 모델과 4개의 별도 테이블을 만드시겠습니까? 또는 동물용 테이블과 개용 테이블 두 개를 만드세요.

또한 각 동물에 "makeSound" 기능이 있는 경우 인터페이스를 사용하여 이를 구현한 다음 개가 짖을 것이라고 가정할 수 있지만, 개 품종마다 약간 다른 작업을 수행하도록 하는 재정의가 있을 수 있습니다. 제가 혼란스러워하는 점은 골든 리트리버가 무엇인지 어떻게 이해할 수 있느냐는 것입니다.

동물이라면 이렇게 할 수 있겠네요

으아악

하지만 방법은 잘 모르겠습니다:

으아악

이 주제에 대한 조언이나 독서 자료를 주시면 감사하겠습니다. 저는 객체지향 프로그래밍에 대해서는 어느 정도 지식을 갖고 있지만 Laravel 환경에 대해서는 지식이 많지 않습니다. 일부 기사를 읽었지만 Laravel과 관련된 기사는 없습니다.

P粉990008428P粉990008428328일 전349

모든 응답(1)나는 대답할 것이다

  • P粉648469285

    P粉6484692852024-01-11 16:26:53

    계획에 등장하는 모델은 모두 동물이므로 반드시 동물테이블과 동물모델을 준비하셔야 합니다.

    이제 특정 모델이 일반 동물과 다르게 동작하는 경우 모델에서 상속하여 모델의 메서드가 사물을 올바르게 처리하도록 할 수 있습니다. 즉, 차이점이 PHP에만 있는 경우 동일한 테이블을 참조하여 모델이 서로 상속되도록 할 수 있으며, 애플리케이션은 일부 기준에 따라 다양한 모델을 언제, 어떻게 작동할지 판단합니다.

    데이터베이스에도 차이점이 있는 경우, 즉 개의 경우 추가 정보가 필요한 경우 동물 테이블에 대한 외래 키가 있는 개에 대한 속성 테이블을 구축할 수 있습니다.

    마지막으로, 각 모델에 대해 서로 다른 테이블을 사용하기로 결정할 수 있습니다. 이 경우 추상적인 동물 클래스를 구현하고 보다 구체적인 동물 모델 클래스가 이를 자체 방식으로 확장하도록 하는 것이 더 나을 것입니다. 콘텐츠는 추상 동물 클래스로 구현됩니다.

    위의 방법 중 어느 것이 더 나은지는 귀하의 특정 상황에 따라 크게 달라집니다.

    회신하다
    0
  • 취소회신하다