количество отсчетов каждого типа регистрации не работает должным образом - PullRequest
0 голосов
/ 03 июля 2018

Я хочу получить количество каждого типа регистрации с кодом ниже:

$registrationTypeDetails = Registration::with('participants:id,registration_type_id,registration_id')->find($regID);

$type_counts = [];
foreach ($registrationTypeDetails->participants as $p) {
    $name = $p->registration_type->name;
    if (!isset($type_counts[$name])) {
        $type_counts[$name] = 0;
    }
    $type_counts[$name]++;
}

Дд ($ type_counts), если пользователь выполняет регистрацию с двумя типами регистрации «общая» и одним типом регистрации «плюс», показывает:

array:2 [▼
  "geral" => 2
  "plus" => 1
]

Так что работает нормально. Но тогда мне нужно отправить запрос в API, где необходимо отправить в теле запроса количество каждого типа регистрации, в этом случае для типа регистрации «общий» значение должно быть «2», а для типа регистрации «плюс» значение должно быть «1».

Но это не работает должным образом, значение всегда равно «1» для обоих типов регистрации.

Знаете ли вы, где проблема?

foreach($registration->conference->registrationTypes as $key=>$registrationType){
    $items['invoice']['items'][]  = [
        'name' => $registration->conference->registrationTypes[$key]['name'],
        'unit_price' => $registration->conference->registrationTypes[$key]['price'],
        'quantity' => $type_counts[$name],
    ];
}

$create = $client->request('POST', 'https://...', [
    'query' => ['api_key' => '...'], 'json' => $items,
]);

Массив результатов имеет количество «1», как показано ниже, но количество должно быть «2» для типа регистрации «общий» и «1» для «плюс»:

array:1 [▼
  "invoice" => array:4 [▼
    "client" => array:7 [▶]
    "items" => array:2 [▼
      0 => array:5 [▼
        "name" => "general"
        "unit_price" => 10
        "quantity" => 1
      ]
      1 => array:5 [▼
        "name" => "plus"
        "unit_price" => 0
        "quantity" => 1
      ]
    ]
  ]
]

1 Ответ

0 голосов
/ 03 июля 2018

$name никогда не изменяется в цикле типов регистрации:

// the $name index is always the same
'quantity' => $type_counts[$name],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...