Salesforce:親オブジェクトから子オブジェクトを Visualforce ページに出力する

1 min read読了の目安(約1200字

実装例

<apex:repeat value="{!customObj}"var="parents">
	<apex:repeat value="{!parents.Children__r}" var="childs">
		{!childs.Name}
		<br/>
	</apex:repeat>
</apex:repeat>

補足
 customObj : 親カスタムオブジェクト
 Children : 子オブジェクト親から子オブジェクトを参照する場合「XXXX__r」 という記述になる

試したけどできなかった

親から子を参照する際の項目が無いと言われる感じのエラーが起きてた

The value of attribute "value" associated with an element type "apex:repeat" must not contain the '<' character.

子オブジェクトの主従関係項目を指定してもだめ。
とりあえず子→親の参照ができるか確認してみた。
下記でできた。

<apex:page standardController="Custom_Children__c">
	<apex:repeat value="{!Custom_Children__c }" var="parents">
		<apex:repeat value="{!parents.r_parent__c}" var="childs">
			{!childs}<br/>
		</apex:repeat>
	</apex:repeat>
</apex:page>

親と子を入れ替えてみるがまたもできず。

ググって見るとフレクトさんのブログがHit

セールスフォースの豆知識

親オブジェクトから子オブジェクトへは、 子リレーション名を使用してリレーションを辿ります。

コレダ!!

子オブジェクトの主従関係項目→[編集]からリレーション名を確認し下記コードに変えたところ、問題なく表示できた。

<apex:page standardController="Custom_Parent__c">
	<apex:repeat value="{!Custom_Parent__c }" var="parents">
		<apex:repeat value="{!parents.parent_item__r}" var="childs">
			{!childs.Name}
		  <br/>
		</apex:repeat>
	</apex:repeat>
    
</apex:page>