Wie kann ich die Funktion „Reduzieren/Ablehnen/Zuordnen“ für Laravel-Sammlungen verwenden?Php

PHP-Programmierer chatten hier
Anonymous
 Wie kann ich die Funktion „Reduzieren/Ablehnen/Zuordnen“ für Laravel-Sammlungen verwenden?

Post by Anonymous »

Ich verwende derzeit die Funktion „show“ in meiner UserController.php, um alle Benutzer anzuzeigen, die zu einem bestimmten Unternehmen gehören.

Code: Select all

/**
* Show the list of all users.
*
* @return Response
*/
public function show() {
$users = User::where('status',1)->with(['phones', 'companies'])->get(['id', 'first_name', 'last_name', 'email']);
$filteredUsers = [];
foreach($users as $user){
foreach($user->companies as $company){
if($company->id == session('selected_company')){
$filteredUsers[] = $user;
}
}
}
return view('users', ['team_members' => $filteredUsers]);
}
Das funktioniert einwandfrei, aber ich möchte den Code mit Laravel-Sammlungen eleganter gestalten, hoffentlich mit einer Funktion „map()“, „reject()“ oder „reduction()“

Wie kann ich das machen?

Ich habe die Funktion „reject()“ ausprobiert, aber sie zeigt mir weiterhin alle Benutzer in der Datenbank an. Folgendes habe ich versucht:

Code: Select all

/**
* Show the list of all users.
*
* @return Response
*/
public function show() {
$users = User::where('status',1)->with(['phones','companies'])->get(['id', 'first_name', 'last_name', 'email']);

$userCollection = collect($users);
$filteredUsers = $userCollection->reject(function ($value) {
$userCompanies = collect($value->companies);
// if user companies contain the id, return that user
if($userCompanies->contains('id', session('selected_company'))){
return $value;
}

});

return view('users', ['team_members' => $filteredUsers->all()]);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post