Получить наибольшую ценность из коллекции - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть коллекция продуктов, т.е.

Collection {#567 ▼ 
#items: array:3 [▼
0 => Product {#571 ▼
  #searchable: array:1 [▶]
  #fillable: array:17 [▶]
  #hidden: []
  #connection: "mysql"
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:19 [▼
    "id" => 12
    "brand_id" => null
    "sku" => "1002796"
    "name" => "In quo vero error dolorem est."
    "slug" => "in-quo-vero-error-dolorem-est"
    "description" => "<p>Dicta ipsum quis soluta pariatur iure rerum quo. Voluptatibus nulla eveniet ab esse vero. Atque et quod fuga non.</p>"
    "cover" => "products/W2INR8joy2tLuRLOXv4h5r51I7Vpcjq3hXemzvzI.png"
    "quantity" => 10
    "price" => "5.00"
    "sale_price" => "10.00"
    "status" => 1
    "length" => null
    "width" => null
    "height" => null
    "distance_unit" => null
    "weight" => "5.00"
    "mass_unit" => "lbs"
    "created_at" => "2018-08-30 17:27:30"
    "updated_at" => "2018-09-11 14:30:54"
  ]
  #original: array:21 [▶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: array:1 [▶]
  #touches: []
  +timestamps: true
  #visible: []
  #guarded: array:1 [▶]
  #search_bindings: []
}
1 => Product {#568 ▶}
2 => Product {#569 ▶}
]}

Так что мне нужно, чтобы получить продукт, цена которого со скидкой является самой высокой. И в этом случае скидкой является цена - sale_price. На данный момент я пробовал зацикливать эти элементы из коллекции и пробовал некоторые методы сбора, такие как фильтр, уменьшение, чтобы получить, какой из продуктов имеет лучшую цену со скидкой, но мне не удалось достичь результата. Может быть, я делаю что-то не так или мне не хватает части.

Спасибо за всех, кто хочет мне помочь. :)

1 Ответ

0 голосов
/ 11 сентября 2018

Использование sortByDesc():

$max = $products->sortByDesc(function($product) {
    return $product->price - $product->sale_price;
})->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...