2017-12-14 15 views
0

집합 컬렉션을 다른 컬렉션 집합에 연결하려고합니다. Laravel 5.5에서는 concat 기능을 사용하고 있지만 호환성 문제 때문에 Laravel 5.3까지만 사용해야합니다.Laravel의 concat 컬렉션 5.3

나는 merge 함수를 시도했지만 대신 연결하지는 않지만 병합합니다.

다른 해결 방법은 무엇입니까? 또는 전체 Laravel 패키지를 업데이트하지 않고 Laravel Collection을 어떻게 업데이트 할 수 있습니까? 좋아요 신경 끄시 고

답변

2

, 해결 방법으로 아래의 코드를 사용하고 당신이하려는 경우 :

\Illuminate\Support\Collection::macro('concat', function ($source) { 
    $result = new static($this); 

    foreach ($source as $item) { 
     $result->push($item); 
    } 

    return $result; 
}); 

$new = $someCollection->concat($otherOne); 

이 방법에서 복사 5.5.

asklagbox blog - Laravel macros

Laravel 5.5 Docs - Collections - Extending Collections을이 Collection 잠시 지금이 매크로 기능을 갖고 5.5 문서에서 비록 : 도움이된다면

나는 일반적으로 Laravel에서 매크로에 대한 짧은 블로그 게시물이 있습니다.

+0

@sulaiman은 필요한 매크로 메소드를 5.5에서 필요로합니다. – lagbox

0

, 나는 당신의 "매크로"를 통해 Illuminate\Support\Collection에 기능을 추가 할 수 있습니다

$first_collection->each(function($element) use (&$second_collection) { 

$second_collection->push($element); 

}); 
관련 문제