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

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

Post by Guest »

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 machen, hoffentlich mit einem Map(), Reject() oder Reduce()-Funktion

Wie kann ich das machen?

Ich habe es mit der Ablehnung versucht ()-Funktion, 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