首页 > 解决方案 > 用 Laravel 中集合中的值替换字符串

问题描述

我是 Laravel 的初学者。我有这个代码:

    $value = "Szanowni Państwo,
    Status został zmieniony.
    <br/><br/>
    
    Osoba odp.: {osoba_odpowiedzialna}<br/>";
    
$collection = collect(
            (object) [
                'osoba_odpowiedzialna' => $responsiblePerson,
                'rodzaj' => data_get($term, 'termType.name'),
                'klient' => data_get($term, 'client.name'),
                'sprawa' => data_get($term, 'caseInstance.internal_signature'),
                'status' => data_get($term, 'termStatus.name'),
                'adres' => route('calendar.index')
            ]
        );

结果 $collection 我有:

https://ibb.co/Kz18CJ1

我需要用键替换我的 $value - $collection 中的值:osoba_odpowiedzialna、klient、rodzaj 等。

我怎样才能做到?

标签: laravellaravel-5

解决方案


您的问题不是很清楚,抱歉,但我认为您想要的是:

$replacedText = preg_replace('/{osoba_odpowiedzialna}/', 
$collection['osoba_odpowiedzialna'], $value);

//this will yield (last line below)
//Osoba odp.: Łukasz Moderator

在您发表评论后:

$collection->map(function($item, $key) use (&$value){  //$collection->each(.. should also be fine
  $value = preg_replace('/{'.$key.'}/', $item, $value);
});

推荐阅读