2017-04-05 3 views
2

他のフィールドの2つの値が同じ場合、TCAでフィールドを表示するにはどうすればよいですか?2つの値の間のDisplayCond方程式

私の設定では、2つのフィールドnewoldと1つのフィールドsecondがあります。 newoldが同じかnew=1(これは動作しています)と表示されている場合、そのフィールドにはsecondが表示されます。

$fields[] = array(
    'new' => array(
     'label' => "New ID", 
     'exclude' => 1, 
     'config' => array(
      'type' => 'input' 
     ) 
    ), 
); 

$fields[] = array(
    'old' => array(
     'label' => "old ID", 
     'exclude' => 1, 
     'config' => array(
      'type' => 'input' 
     ) 
    ), 
); 

$fields[] = array(
    'second' => array(
     'exclude' => 1, 
     'displayCond' => array(
      'OR' => array(
       'FIELD:new:=:1', 
       'FIELD:new:=FIELD:old' 
      ) 
     ), 
     'config' => array(
      'type' => 'input', 
      'size' => '255', 
     ) 
    ), 
); 

答えて

1

構文「」フィールド:新しい:= FIELD:古い」(私はコアV8に書き直しました)表示条件パーサによって許可されていません。したがって、2つの異なるフィールドの値を直接比較することはできず、表示条件レベルで問題を解決することはできません。

特別なケースで列を削除する新しいデータプロバイダ(おそらくEvaluateDisplayConditionDataProviderの後に追加)を追加することで問題を解決できます。詳しくはhttps://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/FormEngine/Index.htmlを参照してください。

関連する問題