web-dev-qa-db-ja.com

JmodelListでfilter_fieldsを定義するための構造。

jmodelListを拡張して、コンストラクト関数のList_Modelでデータのリストを処理する場合、config配列にfilter_fieldsを定義します。

$config[filter_fields]=array('field1','a.field1','field2','a.field2');
parent::__construct($config);

私は設定配列でfilter_fields配列を定義する構造について疑問に思っています

why we define every fields two time and how they will be used by joomla.?
1

フィルターフィールドリストは、順序付けのための構成オプションであり、クエリでの使用が許可されているフィールド名のホワイトリストであるため、たとえばクエリ固有としてa.field1を使用できます。

だからあなたの見解では、あなたはこのようなものを書きます:

<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'name', $listDirn, $listOrder); ?>

ご覧のように、このメソッドの3番目の引数では、並べ替えに使用する列名を適用します。ここで、p.nameのようなテーブルを指定できます。

field1a.field1の両方が追加されている可能性があるため、他の誰かがこのモデルを使用したい場合や、次の例のように仕様に使用したい場合:

<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'p.name', $listDirn, $listOrder); ?>
2
Purple Penguin