0
Wie würde ich den Code Refactoring, so dass es nur eine ablehnen Funktion nicht zwei und haben nur einen Aufruf an die db statt drei. Ich versuche auch, keine Duplikate zu haben.Wie würde ich zwei Zurückweisungsfunktionen mit PHP/Laravel kombinieren?
$latestListings = $repo->whereExclusive(['property_status' => 'Active'],['created_at' => 'desc'],[],0, 4);
$latestListingsIds = $latestListings->map(function (Listing $listing) {
return $listing->id;
})->toArray();
$highCflListings = $repo->whereExclusive(['property_status' => 'Active'],['cfl' => 'desc'],[],0, 4);
$highCflListingIds = $highCflListings->map(function (Listing $listing) {
return $listing->id;
})->toArray();
$highCflListingsOccupied = $repo->whereExclusive(
['property_status' => 'Active', 'occupied_percentage' => 100],
['cfl' => 'desc'],
[],
0,
12
)->reject(function (Listing $listing) use ($latestListingsIds) {
return in_array($listing->id, $latestListingsIds);
})->reject(function (Listing $listing) use ($highCflListingIds) {
return in_array($listing->id, $highCflListingIds);
})->take(4);
Dank für Ihre Antwort danken, aber diese scheint Duplikate zu erlauben. Was ich versuche, ist keine Duplikate. – Crystal
Duplikate von was? Es lehnt alle Datensätze mit einem Primärschlüsselwert ab, der in '$ exclude' auftritt. –