2017-02-28 8 views
1

私のコンポーネントでdefineProperties()関数内で設定されたプロパティの値を引き出そうとして少し問題があります。October CMS - コンポーネントのプロパティを取得する方法(__SELF__)

ページに2つのプラグインインスタンスを含めるときにいくつかのプロパティ値を追加しました。これは私の問題にいくつかの文脈を提供するプロパティの短いリストです。

defineProperties() { 
return [ 
    'title' => [ 'title' =>'Title' ], 
    'type' => [ 
     'title'  => 'Type', 
     'type'  => 'dropdown', 
     'default' => 'standalone', 
     'placeholder' => 'Select type', 
     'options' => [ 
      'standalone' => 'Standalone', 
      'networked' => 'Networked' 
     ] 
    ], 
    'unitCost' => [ 
     'title'  => 'Unit Cost', 
     'default' => '130.00' 
    ] 

...

特性は次のように設定されている:

インスタンス1:

フォームコンポーネント

別名:スタンドアロン

タイトル:

タイプ:スタンドアロン

単価:5.00

インスタンス2:

フォームコンポーネント

別名:ネットワーク

タイトル:

タイプ:ネットワーク

単価:10.00

プラグインコンポーネント/フォーム/にdefault.htmlが

No. of Licenses 
<input id="licenseQty" name="licenseQty" type="text" placeholder="1"> 

<label>Support Plans</label> 
<select id="supportPlan" name="supportPlan"> 
    <option value="1">1 Year (included)</option> 
    <option value="2">3 Years</option> 
</select> 
<label>Total:</label> 
<p>&pound;{{ __SELF__ }}</p> 
<button type="submit">Add to Basket</button> 

上記のステートメント(両方のインスタンスがこの直接フォークないIEを使用)、以下が含まれている/計画ページに追加された上記{{SELF}}は、ユーザーが入力した両方のエイリアス値の参照を生成します。 {{SELF.alias}}や{{SELF.id}}のようなSELFの他のプロパティにアクセスしようとすると、関連する詳細が保持されます。私は、ブランクが、何も得るの下にカスタムプロパティにアクセスしようとする場合にのみ、それは次のとおりです。

{{SELF.type}} - 空白

{{SELF.unitCost}} - 空白

ことができます誰も助けて?

答えて

0

__SELF__ getでは、そのコンポーネントのComponentオブジェクト(クラス)にアクセスできます。だから、あなたは{{ __SELF__.alias }}にアクセスしたり、{{ __SELF__.id }}するときにオブジェクトのプロパティにアクセスしている(すなわち、それは基本的に(new MyComponent)->aliasを呼び出すのと同じです。

あなたのコンポーネント用のPHPオブジェクトのプロパティとしてtypeunitCostを定義していないので、あなたが{{ __SELF__.type }}または{{ __SELF__.unitCost }}を介してそれらにアクセスすることはできません。小枝内でそれらにアクセスするためには、あなたがそれらの値を返すコンポーネントオブジェクトメソッド(property())に電話をかけることができ、次のいずれか

{{ __SELF__.property('type') }} 

か、あなたのComponentクラスは、PHPのオブジェクトとして、それらの設定レベルのプロパティを定義することができます/クラスレベルのプロパティを次のように

public function init() { 
    $this->type = $this->property('type'); 
    $this->unitCost = $this->property('unitCost'); 
} 

をして、あなたはトピックの詳細についてはhttp://octobercms.com/docs/plugin/components#component-propertiesを参照してください{{ __SELF__.type }}

の形式でデータにアクセスできるようになります。

関連する問題