original_string: public function ajax($resourceUrl, $idField = 'id', $textField = 'text')
      {
          $configs = array_merge([
              'allowClear'         => true,
              'placeholder'        => trans('admin.choose'),
              'minimumInputLength' => 1,
          ], $this->config);
  
          $configs = json_encode($configs);
          $configs = substr($configs, 1, strlen($configs) - 2);
  
          $this->script = <<<EOT
  
  $(".{$this->getElementClass()}").select2({
    ajax: {
      url: "$resourceUrl",
      dataType: 'json',
      delay: 250,
      data: function (params) {
        return {
          q: params.term,
          page: params.page
        };
      },
      processResults: function (data, params) {
        params.page = params.page || 1;
  
        return {
          results: $.map(data.data, function (d) {
                     d.id = d.$idField;
                     d.text = d.$textField;
                     return d;
                  }),
          pagination: {
            more: data.next_page_url
          }
        };
      },
      cache: true
    },
    $configs,
    escapeMarkup: function (markup) {
        return markup;
    }
  });
  
  EOT;
      }
code: public function ajax($resourceUrl, $idField = 'id', $textField = 'text')
      {
          $configs = array_merge([
              'allowClear'         => true,
              'placeholder'        => trans('admin.choose'),
              'minimumInputLength' => 1,
          ], $this->config);
  
          $configs = json_encode($configs);
          $configs = substr($configs, 1, strlen($configs) - 2);
  
          $this->script = <<<EOT
  
  $(".{$this->getElementClass()}").select2({
    ajax: {
      url: "$resourceUrl",
      dataType: 'json',
      delay: 250,
      data: function (params) {
        return {
          q: params.term,
          page: params.page
        };
      },
      processResults: function (data, params) {
        params.page = params.page || 1;
  
        return {
          results: $.map(data.data, function (d) {
                     d.id = d.$idField;
                     d.text = d.$textField;
                     return d;
                  }),
          pagination: {
            more: data.next_page_url
          }
        };
      },
      cache: true
    },
    $configs,
    escapeMarkup: function (markup) {
        return markup;
    }
  });
  
  EOT;
      }
code_tokens: public function ajax ( $ resourceUrl , $ idField = 'id' , $ textField = 'text' ) { $ configs = array_merge ( [ 'allowClear' => true , 'placeholder' => trans ( 'admin.choose' ) , 'minimumInputLength' => 1 , ] , $ this -> config ) ; $ configs = json_encode ( $ configs ) ; $ configs = substr ( $ configs , 1 , strlen ( $ configs ) - 2 ) ; $ this -> script =  <<<EOT
  
  $(".{$this->getElementClass()}").select2({
    ajax: {
      url: "$resourceUrl",
      dataType: 'json',
      delay: 250,
      data: function (params) {
        return {
          q: params.term,
          page: params.page
        };
      },
      processResults: function (data, params) {
        params.page = params.page || 1;
  
        return {
          results: $.map(data.data, function (d) {
                     d.id = d.$idField;
                     d.text = d.$textField;
                     return d;
                  }),
          pagination: {
            more: data.next_page_url
          }
        };
      },
      cache: true
    },
    $configs,
    escapeMarkup: function (markup) {
        return markup;
    }
  });
  
  EOT ; }
docstring: Load options from ajax.
  
  @param string $resourceUrl
  @param $idField
  @param $textField
docstring_tokens: Load options from ajax .