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.?
フィルターフィールドリストは、順序付けのための構成オプションであり、クエリでの使用が許可されているフィールド名のホワイトリストであるため、たとえばクエリ固有としてa.field1を使用できます。
だからあなたの見解では、あなたはこのようなものを書きます:
<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'name', $listDirn, $listOrder); ?>
ご覧のように、このメソッドの3番目の引数では、並べ替えに使用する列名を適用します。ここで、p.name
のようなテーブルを指定できます。
field1
とa.field1
の両方が追加されている可能性があるため、他の誰かがこのモデルを使用したい場合や、次の例のように仕様に使用したい場合:
<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'p.name', $listDirn, $listOrder); ?>