특정 엔티티, 예를 들어 삭제 대상이되는 관계를 찾는 방법을 찾으려고합니다.엔티티에 관계가 있는지 확인 - 방법?
예 설정 :
Country
엔티티가Currencies
많은 수 있습니다.Currency
엔티티는Countries
일 수 있습니다.Country
은 기본 값이Currency
일 수 있습니다.
그러므로 설정은 Country <-> (1-n) <-> CountryCurrency <-> (n-1) <-> Currency
입니다.
위의 예에서 삭제 대상 국가에 연결된 통화가 있으면 쉽게 찾을 수 있습니다.
그러나 위의 내용은 전역 적으로 설정되었으며 응용 프로그램 내의 다른 모듈에서 사용할 수 있다고 가정 해보십시오. 는 어떻게 특정 Country
엔티티하려고하므로받지 않고 삭제 될 수 있음을 파악할 수있다 : 다른 모듈이 Address
예를 들면, (AN Address
가 Country
을 하나 가짐) 단방향 관계에서 국가를 사용한 경우
a Foreign Key constraint
오류?
Doctrine에는이 기능이 내장되어 있지만 문서에서 찾을 수 없었기를 바랍니다. 성공하지 못한 채 Google을 잠시 동안 사용해 왔습니다. 항상 동향 : "글쎄, 너 $entity->getSomeRelation()->count() > 0
그리고 너도 알지."하지만 모든 엔티티에 적용 할 수있는 일반적인 솔루션/방법을 찾고 있습니다.
"php doctrine metadata"로 검색하십시오. 메타 데이터는 모든 관계를 설명합니다. 나는 당신의 접근이 실제로 실제로 어떻게 작동 할 것인가에 대해 회의적이지만 정보는 거기에 있습니다. – Cerad
재미있는 정보, 잊어 버렸습니다. 그러나, 그것은 나의 유스 케이스에 대한 잘못된 방법이다. 내 질문에 그것을 케이스에 적용 할 때, 나는 모든 정보가 내가 삭제하고있는'국가'로부터 왔음을 알 수있다. 단방향으로 '국가'를 사용하는 '주소'와 관련된 결과가 없습니다. ('associationMappings' 속성의'ClassMetadata' 엔티티에서 볼 수 있듯이 -> 'Country # coordinates'와'Country # countryCurrencies'에 대한 링크를 포함합니다). 다른 생각이라면, 나는 올바른 방향으로 포인터에 귀를 기울입니다. – Nukeface
Doctrine Database Abstraction Layer 스키마 도구를 사용하여 SQL 데이터베이스에 직접 외래 키 제약 조건이 있는지 확인할 수 있습니다. http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-manager.html 그러나 나는 여전히 당신의 전체 접근에 대해 모호하다. 정말로 이런 종류의 문제에 부딪 힐 것이라고 생각하십니까?설정 변수를 설정하는 것은 어떨까요? – Cerad