Für ein neues Projekt arbeite ich an einem Webshop. Ich habe Produkte mit einer Eins-zu-viele-Beziehung zu Pflanzen Details. Anlagendetails haben einen Spaltenpreis. Ich muss die Produkte auf den Preis des ersten Details bestellen.Laravel Auftrag Eloquenziert nach Beziehung
Wenn ich eine Verbindung verwende, bekomme ich alle Produkte nach Preis sortiert, aber ich bekomme ein neues Produkt für jede Detailbeziehung.
Ich habe versucht:
$products = $products->get();
$products = $products->sortBy(function ($product, $key) {
return $product->plantDetails()->first()->price; });
$products = $this->paginate($products, $perPage = 24, true);
}
mit $this->paginate
Wesen:
public function paginate($items, $perPage = 15, $page = null, $options = []) {
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
aber als ich die aktuelle Seite in der nicht Paginierung Link. Hat jemand irgendwelche Ideen?
meinen Sie den Link der aktuellen Seite von Verfahren Paginierung zu machen wie '$ Produkte-> render()' nur zeigt nichts, aber die anderen Seiten zeigt so etwas wie 'http://site.test/products? page = 2'? – Chay22
$ products-> links() rendert die Seitenumbruch wie erwartet, aber der Link auf der http: //site.test/products Seite wäre http://site.dev/?page=2 –
haben Sie versucht, die 3. zu entfernen Param auf 'paginate'? Oder den Pfad zum Paginator manuell festlegen? '$ this-> paginate ($ products, 24) -> setPath ($ request-> url());' – Chay22