(string) $this->object_address . ', ' . $this->area_name . ', ' . $this->district_name, ); } public function productsWithCount(): Attribute { $products = ProductSKU::query()->where('order_id', $this->id)->get(); //$this->products_sku; $ret = []; foreach ($products as $product) { if(isset($ret[$product->product->id])) { $ret[$product->product->id]['count'] += 1; } else { $ret[$product->product->id] = [ 'name' => $product->product->article, 'count' => 1, ]; } if($product->maf_order?->order_number) { $ret[$product->product->id]['order_numbers'][] = $product->maf_order?->order_number; } } $s = ''; $openTag = '
'; $closeTag = '
'; foreach ($ret as $product) { $order_numbers = (isset($product['order_numbers'])) ? ' (' . implode(', ', array_unique($product['order_numbers'])) . ')' : ''; $s .= $openTag . $product['name'] . ' - ' . $product['count'] . $order_numbers . $closeTag; } return Attribute::make( get: fn($value) => (string) $s, ); } }