私はこのドキュメントに従っています:http://www.propelorm.org/documentation/04-relationships.html#manytomany_relationships
私は非常によく似た設定をしています(読みやすくするために少し簡略化されていますが):
航海日誌
<table name="logbook" phpName="Logbook" idMethod="native">
<column name="id" phpName="Id" type="INTEGER" size="10" sqlType="int(10) unsigned" primaryKey="true" autoIncrement="true" required="true"/>
<column name="location" phpName="Location" type="VARCHAR" size="255" required="false"/>
</table>
コンタクト
<table name="contact" phpName="Contact" idMethod="native">
<column name="id" phpName="Id" type="INTEGER" size="10" sqlType="int(10) unsigned" primaryKey="true" autoIncrement="true" required="true"/>
<column name="title" phpName="Title" type="VARCHAR" size="255" required="true"/>
<column name="name" phpName="Name" type="VARCHAR" size="255" required="true"/>
<column name="telephone" phpName="Telephone" type="VARCHAR" size="20" required="true"/>
</table>
ログブックの連絡先
<table name="logbook_contact" phpName="LogbookContact" idMethod="native" isCrossRef="true">
<column name="logbook_id" phpName="LogbookId" type="INTEGER" size="10" sqlType="int(10) unsigned" primaryKey="true" required="true"/>
<column name="contact_id" phpName="ContactId" type="INTEGER" size="10" sqlType="int(10) unsigned" primaryKey="true" required="true"/>
<foreign-key foreignTable="contact" name="fk_logbook_contact_contact" onDelete="CASCADE" onUpdate="CASCADE">
<reference local="contact_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="logbook" name="fk_logbook_contact_logbook" onDelete="CASCADE" onUpdate="CASCADE">
<reference local="logbook_id" foreign="id"/>
</foreign-key>
<index name="fk_logbook_contact_contact">
<index-column name="contact_id"/>
</index>
</table>
logbook_contactテーブルにあることに注意しisCrossRef="true"
てください。これは、これがジャンクションテーブルであることを示しています。ここから、(ビルドディレクトリをクリアした後)再実行propel-gen om
しpropel-gen convert-conf
ましたが、それでも次のようなことはできないようです。
<?php
/* presume $logbook has been LogbookQuery::create()'d already... */
$contacts = $logbook->getContacts();
$nbContacts = $logbook->countContacts();
Zend Studioを使用していますが、コードヒントウィンドウに表示されません。
誰かが私がここで間違ったことをしたかもしれないことを私に提案できますか?私はあなたが私にドキュメントを指摘してくれてうれしいです-私はこれらを可能な限り厳密に追跡し、うまくいくまですべてを続けてきました$test
。