findByCategory('payment'); $shippingAreas = AreaQuery::create()->find(); $paymentAreaConditions = PaymentAreaConditionQuery::create() ->find(); if (null !== $paymentAreaConditions) { /** @var PaymentAreaCondition $paymentAreaCondition */ foreach ($paymentAreaConditions as $paymentAreaCondition) { $areaPaymentConditionArray[$paymentAreaCondition->getPaymentModuleId()][$paymentAreaCondition->getAreaId()] = $paymentAreaCondition->getIsValid(); } } return $this->render('payment-condition/shipping_area', [ 'paymentModules' => $paymentModules, 'shippingAreas' => $shippingAreas, "areaPaymentCondition" => $areaPaymentConditionArray ]); } public function saveAction() { $request = $this->getRequest(); try { $paymentId = $request->request->get("paymentId"); $areaId = $request->request->get("areaId"); $isValid = $request->request->get("isValid") == "true" ? 1 : 0; $paymentArea = PaymentAreaConditionQuery::create() ->filterByPaymentModuleId($paymentId) ->filterByAreaId($areaId) ->findOneOrCreate(); $paymentArea->setIsValid($isValid) ->save(); } catch (\Exception $e) { return JsonResponse::create($e->getMessage(), 500); } return JsonResponse::create("Success"); } }