Eccube\Controller\Admin\Order\EditController::searchCustomer PHP Method

searchCustomer() public method

顧客情報を検索する.
public searchCustomer ( Application $app, Request $request ) : Symfony\Component\HttpFoundation\JsonResponse
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
return Symfony\Component\HttpFoundation\JsonResponse
    public function searchCustomer(Application $app, Request $request)
    {
        if ($request->isXmlHttpRequest()) {
            $app['monolog']->addDebug('search customer start.');
            $searchData = array('multi' => $request->get('search_word'));
            $qb = $app['eccube.repository.customer']->getQueryBuilderBySearchData($searchData);
            $event = new EventArgs(array('qb' => $qb, 'data' => $searchData), $request);
            $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_ORDER_EDIT_SEARCH_CUSTOMER_SEARCH, $event);
            $Customers = $qb->getQuery()->getResult();
            if (empty($Customers)) {
                $app['monolog']->addDebug('search customer not found.');
            }
            $data = array();
            $formatTel = '%s-%s-%s';
            $formatName = '%s%s(%s%s)';
            foreach ($Customers as $Customer) {
                $data[] = array('id' => $Customer->getId(), 'name' => sprintf($formatName, $Customer->getName01(), $Customer->getName02(), $Customer->getKana01(), $Customer->getKana02()), 'tel' => sprintf($formatTel, $Customer->getTel01(), $Customer->getTel02(), $Customer->getTel03()), 'email' => $Customer->getEmail());
            }
            $event = new EventArgs(array('data' => $data, 'Customers' => $Customers), $request);
            $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_ORDER_EDIT_SEARCH_CUSTOMER_COMPLETE, $event);
            $data = $event->getArgument('data');
            return $app->json($data);
        }
    }