Laravel: сопоставьте по ключу и получите результат в формате json - PullRequest
0 голосов
/ 28 апреля 2019

Я использую mailgun API и пакетную отправку, чтобы правильно отправлять пакетные письма с переменными получателя, я должен предоставить действительный словарь в кодировке JSON, где ключ - это простой адрес получателя, а значение - словарь с переменными.

Объект JSON, который я хочу получить, выглядит следующим образом:

'{ "bob@example.com": {"username":"Bob", "id":1} ,
 { "pete@example.com": {"first":"Pete", "id":2} ,'

Это то, что у меня есть (псевдокод):

$subs = Sub::all();

        foreach($subs as $sub)
        {
            $username = mailName($email->email);
            $id = $sub->id;
        }

Как я могу это сделать,это можно сделать методами сбора laravel?

Заранее спасибо и извините за вопрос noob.

1 Ответ

0 голосов
/ 28 апреля 2019

Да, вы можете использовать коллекцию, чтобы получить результат, поэтому вернемся к своему псевдокоду, вы можете достичь его следующим образом:

$data = collect();

foreach($subs as $sub)
{
    $data[$email->email] = [
      'username' => mailName($email->email),
      'id' => $sub->id
    ];
}

$data->toJson(); // this line will give you the expected result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...