# List of companies while merging

**URL:** https://forum.mautic.org/t/list-of-companies-while-merging/31396
**Category:** Development
**Created:** [March 22, 2024, 5:51am UTC](https://forum.mautic.org/t/list-of-companies-while-merging/31396 "2024-03-22T05:51:01Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![nishant\_s](https://avatars.discourse-cdn.com/v4/letter/n/5f9b8f/32.png) [@nishant\_s](https://forum.mautic.org/u/nishant_s)
#### Post date: [March 22, 2024, 5:51am UTC](https://forum.mautic.org/t/list-of-companies-while-merging/31396/1 "2024-03-22T05:51:01Z")

</div>

I’ve been trying to find out from where is the select input field for merging companies getting populated with company options. I’ve found out that it is working through ajax calls in `CompanyListType.php` through this function:

```auto
public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults(
            [
                'label' => 'mautic.lead.lead.companies',
                'entity_label_column' => 'companyname',
                'modal_route' => 'mautic_company_action',
                'modal_header' => 'mautic.company.new.company',
                'model' => 'lead.company',
                'ajax_lookup_action' => 'lead:getLookupChoiceList',
                'multiple' => true,
                'main_entity' => 'main_entity',
            ]
        );
    }

```

From here, how does the control go to `AjaxLookupController.php`? I believe this function from `AjaxLookupControllerTrait.php` is then responsible for getting the companies data:

```auto
public function getLookupChoiceListAction(Request $request): JsonResponse
    {
        $dataArray = [];
        $modelName = InputHelper::clean($request->query->get('searchKey'));
        $search = InputHelper::clean($request->query->get(str_replace('.', '_', $modelName)));
        $limit = (int) $request->query->get('limit', '0');
        $start = (int) $request->query->get('start', '0');

        if (!$modelName) {
            throw new BadRequestException('The searchKey parameter is required.');
        }

        if (!$search) {
            return new JsonResponse($dataArray);
        }

        $model = $this->getModel($modelName);

        if (!$model instanceof AjaxLookupModelInterface) {
            throw new BadRequestException("The model {$modelName} must implement the AjaxLookupModelInterface.");
        }

        $results = $model->getLookupResults($modelName, $search, $limit, $start);

        foreach ($results as $group => $result) {
            $option = [];
            if (is_array($result)) {
                if (!isset($result['value'])) {
                    // Grouped options
                    $option = [
                        'group' => true,
                        'text' => $group,
                        'items' => $result,
                    ];

                    foreach ($result as $value => $label) {
                        if (is_array($label) && isset($label['label'])) {
                            $option['items'][$value]['text'] = $label['label'];
                        }
                    }
                } else {
                    if (isset($result['label'])) {
                        $option['text'] = $result['label'];
                    }

                    $option['value'] = $result['value'];
                }
            } else {
                $option[$group] = $result;
            }

            $dataArray[] = $option;
        }

        return new JsonResponse($dataArray);
    }

```

I am having trouble understanding the flow of control here. How can I pass parameters from `CompanyListType.php` to this function?
