как назначить повторное сообщение в protobuf-php, с синтаксисом proto3? - PullRequest
0 голосов
/ 31 января 2019

Определен файл .proto:

message ResponseStatus {
    uint32 code = 1;
    string message = 2;
}
message DepositPaymentRequest {
    uint32 member_id = 1;
}
message DepositPaymentResponse {
    ResponseStatus status = 1;
    repeated DepositMethod methods = 2;
}
message DepositMethod {
    string method_name = 1;
    string payment_count = 2;
    repeated DepositPayment payments = 3;
}
message DepositPayment {
    uint32 payment_id = 1;
    string payment_name = 2;
    uint32 payment_money_min = 3;
    uint32 payment_money_max = 4;
}

Мой php-код:

$status = [
    'code'    => 200,
    'message' => 'Success'
];
$responseStatus = new ResponseStatus($status);
$depositMethods = [
    [
         'name'  => 'name1',
         'count' => 1,
         'payments' => [
              [
                   'payment_id'        => 1,
                   'payment_name'      => 'name1',
                   'payment_money_min' => 10,
                   'payment_money_max' => 5000
              ]
         ]
    ]
];
$depositPaymentResponse = new DepositPaymentResponse();
$result = $depositPaymentResponse->setStatus($responseStatus)
                                         ->setMethods($depositMethods)
                                         ->serializeToString();

актуальный: $ результат нет данных, поэтому как назначить повторныйfield?

Я пытаюсь использовать класс RepeatedField следующим образом:

$repeatedMethods = new RepeatedField(GPBType::MESSAGE, DepositMethod::class);

Но я не знаю, как это использовать, поэтому я использую массив для присваивания, но не успеха

...