簡體   English   中英

Laravel:按鍵映射並在json中獲得結果

[英]Laravel: Map by key and get result in json

我正在使用mailgun API和批量發送,為了正確發送帶有recipent變量的批處理郵件,我必須提供一個有效的JSON編碼字典,其中key是普通的收件人地址,value是帶變量的字典。

我想獲得的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收集方法?

在此先感謝,並對諾布問題感到抱歉。

是的,你可以使用集合來獲得結果,所以回到你的偽代碼,你可以實現它:

$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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM