0

次の問題があり$GiftIDます。ページに変数があります。関数を使用して、すべてのギフトオブジェクトを循環させたいgetGifts()$ID贈り物のがページのと等しいとき、$GiftID私は何かが起こりたいです。

これが私のコードの例です:

$GiftID 
<% control getGifts %> 
   <% if CurrentPage.GiftID = ID %>This is it!<% end_if %> 
<% end_control %>

コントロール内で印刷するときに使用$CurrentPage.GiftIDは機能しますが、ifステートメント内からどのようにアクセスできますか?

SS2.9を使用しています

4

2 に答える 2

1

私はまだss2.9を使用していませんが<% if Top.GiftID = ID %>、2.xバージョンでは使用できないことを知っている限り、2つの変数を比較することはできず、静的な値とのみ比較できます。(ただし、3.0では可能です)

したがって、選択したギフトオブジェクトのみを表示する場合は、php側で行う必要があります。

  1. GiftIDが実際にのhas_oneリレーションのDBフィールドである場合は、 Gift<%control Gift%>を実行するだけで、GiftIDを使用してGiftオブジェクトのスコープを設定できます。
  2. あなたが本当にGiftIDDBフィールドまたは他の方法で保存したなら、それからすることができます
    public function getGift() { return DataObject::get_by_id('Gift', $this->GiftID); }

両方の方法で<%control Gift%>を実行でき、スコープが設定されます

すべてのギフトを一覧表示して現在のギフトにマークを付ける場合は、php側で行う必要があります(オブジェクトのセットごとに、現在のオブジェクトにフラグを設定します)

于 2012-08-24T06:49:46.903 に答える
0

次のコマンドで現在のページにアクセスできるはずですTop

<% control getGifts %> 
   <% if Top.GiftID = ID %>This is it!<% end_if %> 
<% end_control %>
于 2012-08-24T03:21:46.417 に答える