내 데이터베이스에는 user
테이블이 있습니다. 이 사용자 테이블에는 외래 키인 parent_user_id
과 user_class_id
사이의 여러 필드가 있으며 둘 다 기본 키의 일부가 아닙니다. 다음과 같이 내 BaseUser.php에서는 외부 키를 나열Propel이 일부 관계형 객체를 검색하기위한 함수를 만드는 이유는 무엇입니까?
protected $aUserRelatedByUserParentId;
protected $aUserClass;
마찬가지로, 나는 getUserClass()
및 setUserClass()
을 가지고 있지만 나는 getUserParent()
및 setUserParent()
이 없습니다. 오히려 나는 getUserParentId() and setUserParentId()
입니다. 이것에 대한 이유가 있습니까? 그렇다면 schema.xml에서이를 대체 할 수 있습니까? 여기있다 :
<?xml version="1.0" encoding="utf-8"?>
<!--Autogenerated by PropelSchemaReverseTask class.-->
<database name="test" defaultIdMethod="native">
<table name="user" phpName="User" idMethod="native">
<column name="id" phpName="Id" type="INTEGER" primaryKey="true" required="true"/>
<column name="parent_user_id" phpName="ParentUserId" type="INTEGER" required="true"/>
<column name="name" phpName="Name" type="VARCHAR" size="45" required="true"/>
<column name="description" phpName="Description" type="VARCHAR" size="45" required="true"/>
<column name="user_class_id" phpName="UserClassId" type="INTEGER" required="true"/>
<foreign-key foreignTable="user_class" name="fk_user_class">
<reference local="user_class_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="user" name="fk_user_parent">
<reference local="parent_user_id" foreign="id"/>
</foreign-key>
<index name="fk_user_parent_idx">
<index-column name="parent_user_id"/>
</index>
<index name="fk_user_class_idx">
<index-column name="user_class_id"/>
</index>
<vendor type="mysql">
<parameter name="Engine" value="InnoDB"/>
</vendor>
</table>
<table name="user_class" phpName="UserClass" idMethod="native">
<column name="id" phpName="Id" type="INTEGER" primaryKey="true" required="true"/>
<column name="name" phpName="Name" type="VARCHAR" size="45" required="true"/>
<column name="permissions" phpName="Permissions" type="VARCHAR" size="45" required="true"/>
<vendor type="mysql">
<parameter name="Engine" value="InnoDB"/>
</vendor>
</table>
</database>
XML 스키마의 관련 부분 ('user' 및 관련 테이블의 일부)을 볼 수 있습니까? - 귀하의 질문에 그것을 편집하십시오. – halfer
문제의 두 테이블이있는 schema.xml을 추가했습니다. – NobleUplift