Book Ratings (書評) コンポーネントに著者データを追加する
Trail Together の動画
エキスパートの説明を見ながらこのステップを進めて行きたい場合は、Trail Together シリーズの一部である、こちらの動画をご覧ください。
(巻き戻して最初から見直したい場合、このクリップは 12:48 分から開始されます。)
はじめに
このステップでは、近くのオブジェクトからデータを取得し、Books4Everyone の Recommendation (おすすめ) コンポーネントを更新するための多層的なクエリを記述します。Books4Everyone は、Recommendation (おすすめ) コンポーネントに著者の名前を追加することで強化したいと考えています。
SOQL の記述
今回はクライアントから SQL クエリは提供されていません。要求は、著者の名前を取得して Books4EveryoneRecommendations コンポーネントに表示することです。現在は次のクエリを使用しています。
SELECT Name, Review__c, Rating__c, Book__r.Name FROM Recommendation__c WHERE Book__c != null
著者の名前も取得したいわけですので、Recommendation (おすすめ) のデータがすでにクエリの対象となっているオブジェクトとどのように関連しているかをデータモデルで確認します。Recommendation (おすすめ) は、Book (書籍) に関連し、Book (書籍) は Author (著者) に関連しています。SOQL では 7 レベルまでの参照が可能ですので、今回のケースでは十分です。
- 開発者コンソールで Apex クラスの Books4EveryoneHomeController を開きます。
-
getBookRecommendations
メソッドの SOQL コードにリターン行を追加します。return [SELECT Name, Review__c, Rating__c, Book__r.Name, Book__r.Author__r.Name FROM Recommendation__c WHERE Book__c != null];
- Books4EveryoneRecommendations Lightning コンポーネントを開きます。
- コンソールの右側で Component (コンポーネント) ファイルを選択してあることを確認します。
- コンポーネントファイルで <table から </table> までのセクションを探し、次のコードで置き換えます。
<table class="slds-table slds-table_bordered slds-table_cell-buffer"> <thead> <tr class="slds-text-title_caps"> <th scope="col">Book Title</th> <th scope="col">Author</th> <th scope="col">Rating</th> <th scope="col">Review</th> </tr> </thead> <tbody> <aura:iteration items="{!v.Recommendations}" var="recommendations"> <tr scope="row"> <td>{!recommendations.Book__r.Name}</td> <td>{!recommendations.Book__r.Author__r.Name}</td> <td>{!recommendations.Rating__c}</td> <td> {!recommendations.Review__c}</td> </tr> </aura:iteration> </tbody> </table>
- ファイルを保存します。
お疲れさまでした。多層的なクエリを記述し、結果がホームページに表示されます。
Books4Everyone はあなたの仕事にとても満足し、お礼として (もちろん本の形の) ケーキを焼いて贈ってくれました。
まとめ
このプロジェクトではいくつかのことを学びました。あなたはシンプルな SOQL クエリからより複雑なクエリへと進み、SQL から SOQL にクエリを変換しました。SOQL ではさらに多くのことができますが、初めての仕事としては上出来です。次にお勧めするステップは、Salesforce への .NET スキルの適用バッジの獲得です。