當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Collection::hasMacro方法代碼示例

本文整理匯總了PHP中Illuminate\Support\Collection::hasMacro方法的典型用法代碼示例。如果您正苦於以下問題:PHP Collection::hasMacro方法的具體用法?PHP Collection::hasMacro怎麽用?PHP Collection::hasMacro使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Illuminate\Support\Collection的用法示例。


在下文中一共展示了Collection::hasMacro方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: function

     * @throws \LengthException
     */
    Collection::macro('transpose', function () : Collection {
        $values = $this->values();
        $expectedLength = count($this->first());
        $diffLength = count(array_intersect_key(...$values));
        if ($expectedLength !== $diffLength) {
            throw new \LengthException("Element's length must be equal.");
        }
        $items = array_map(function (...$items) {
            return new static($items);
        }, ...$values);
        return new static($items);
    });
}
if (!Collection::hasMacro('partition')) {
    /*
     * Output a collection with two elements. Items in the first element did pass
     * the given $callback, items in the second element did not.
     *
     * @param callable $callback
     *
     * @return \Illuminate\Support\Collection
     */
    Collection::macro('partition', function (callable $callback) : Collection {
        $partitions = [new static(), new static()];
        foreach ($this->items as $item) {
            $partitions[!(int) $callback($item)][] = $item;
        }
        return new static($partitions);
    });
開發者ID:spatie,項目名稱:laravel-collection-macros,代碼行數:31,代碼來源:macros.php

示例2: function

    });
}
if (!Collection::hasMacro('toEloquent')) {
    /**
     * Get a Database Eloquent collection instance from this collection.
     * Filters out any items that are not Models.
     *
     * @return \Illuminate\Database\Eloquent\Collection
     */
    Collection::macro('toEloquent', function () {
        return EloquentCollection::make($this->filter(function ($item) {
            return $item instanceof Model;
        })->all());
    });
}
if (!Collection::hasMacro('transpose')) {
    /**
     * Transpose a collection. Rows become columns, columns become rows.
     * E.g.     becomes
     *  [1,2]    [1,3]
     *  [3,4]    [2,4]
     *
     * @return \Illuminate\Support\Collection
     */
    Collection::macro('transpose', function () {
        $type = get_class($this);
        return $type::make(array_map(function (...$items) {
            return $items;
        }, ...$this->values()));
    });
}
開發者ID:propaganistas,項目名稱:laravel-helper-macros,代碼行數:31,代碼來源:Collection.php


注:本文中的Illuminate\Support\Collection::hasMacro方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。