Page 1 of 1

Laravel 5.6 – Modellfunktionen in ModelFactory verwenden

Posted: 23 Dec 2024, 14:03
by Anonymous
Ich arbeite mit Laravel 5.6 und habe beim Erweitern der Funktionalität meines Projekts ein seltsames Problem festgestellt.

Im Moment muss ich zwei neue erstellen Modelle: Bestellung und Artikel. Mit Faker und Laravel Factories/Seeders war es recht einfach, die Artikeltabelle mit Dummy-Daten zu füllen. Das größte Problem besteht bei der Arbeit mit dem Auftragsmodell.

Dieser kleine Kerl ist mit einer Firma mit einem Fremdschlüssel namens „company_id“ verknüpft und user mit einem Fremdschlüssel namens seller_id. Das Firmenfeld ist in Ordnung, das Problem liegt hinter meiner Verkäufer-ID.

Dieser Verkäufer benötigt eine Rolle, die sich auf die Firma bezieht, die meine Fabrik zufällig auswählen wird Dies liegt daran, dass der Benutzer nicht (direkt) mit der Firma in Verbindung steht und ich nicht einfach mit einer Firmen-ID danach suchen kann.

Um alles zu bekommen Da die Benutzer mit meinem Unternehmen einen „Bezug“ haben, habe ich die nächste Funktion für mein Unternehmen erstellt Modell:

public function users()
{
$roles = $this->roles;
$users = [];
foreach ($roles as $role) {
foreach ($role->users as $user) {
$user->makeHidden(['pivot']);
array_push($users, $user);
}
}

$users = array_unique_objects($users);
return $users;
}


Übrigens: Ich verwende laravel-permissions, eine Bibliothek von Spatie.

Diese Funktion ruft jede Rolle von einem Unternehmen ab und überträgt sie dann an ein Array von Benutzern.

Dieser benutzerdefinierte Helfer: array_unique_objects verfolgt jeden wiederkehrenden Benutzer auf meinem Array und entfernt ihn Sie.

Diese Funktion funktioniert, weil ich sie auf einigen Controllern getestet habe, also weiß ich, dass es kein Problem damit gibt. So oder so sieht meine OrderFactory.php so aus: