web-dev-qa-db-ja.com

カスタムフィールドの引数を渡す

いくつかの条件でデータベースを選択する必要があるカスタムフィールドが必要です。顧客Aがこのフィールドにログインすると、顧客Aのみに属するレコードを選択する必要があります。

カスタムフィールドは以下の通りです

JFormHelper::loadFieldClass('list');

class JFormFieldGroupList extends JFormFieldList{
  protected $type='grouplist'

  public function getOptions($id=''){
    $options = array();
    //connect to database and get the records
    //Form the value and text
    return $options
  }
}

XMLで

<field name="grouplist"
  multiple="true"
  type="grouplist"          
  label="Group"/>

Default.php

echo $this->form->renderField('grouplist',null,$default_group);

問題は、default.phpからカスタムフィールドに値を渡して、データベースからデータをフェッチするときに条件付き選択クエリを配置できるようにすることです。

3
Malaiselvan

それをフィールドロジックに組み込みます。

JFormHelper::loadFieldClass('list');

class JFormFieldGroupList extends JFormFieldList{
    protected $type='grouplist'

    public function getOptions($id=''){
        $options = array();
        $user = JFactory::getUser();
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        // set up your query
        $query->where('user_id = '.$user->id);
        //connect to database and get the records
        //Form the value and text
        return $options
    }
}
1
Michael

JQuery onChangeイベントを使用して、必要なデータを含むJSON結果を提供するコントローラータスクを実行します。これがコンポーネントでない場合は、コンポーネントを作成する必要があります。または、CLIアプリケーションを試すこともできます。これが唯一の安全で信頼できる方法です。

0
Artur Stępień