Ich möchte in der Lage sein, einem Laravel / Eloquent-Modell beim Laden ein benutzerdefiniertes Attribut / eine benutzerdefinierte Eigenschaft hinzuzufügen, ähnlich wie dies mit der RedBean- $model->open()
Methode erreicht werden kann.
Zum Beispiel habe ich im Moment in meinem Controller:
public function index()
{
$sessions = EventSession::all();
foreach ($sessions as $i => $session) {
$sessions[$i]->available = $session->getAvailability();
}
return $sessions;
}
Es wäre schön, die Schleife weglassen zu können und das Attribut 'verfügbar' bereits festgelegt und ausgefüllt zu haben.
Ich habe versucht, einige der in der Dokumentation beschriebenen Modellereignisse zu verwenden, um diese Eigenschaft beim Laden des Objekts anzuhängen, aber bisher ohne Erfolg.
Anmerkungen:
- 'verfügbar' ist kein Feld in der zugrunde liegenden Tabelle.
$sessions
wird als JSON-Objekt als Teil einer API zurückgegeben, und daher ist das Aufrufen von Elementen wie$session->available()
in einer Vorlage keine Option