J'aimerais pouvoir ajouter un attribut / propriété personnalisé à un modèle Laravel / Eloquent lorsqu'il est chargé, de la même manière que cela pourrait être réalisé avec la $model->open()
méthode de RedBean .
Par exemple, en ce moment, dans mon contrôleur, j'ai:
public function index()
{
$sessions = EventSession::all();
foreach ($sessions as $i => $session) {
$sessions[$i]->available = $session->getAvailability();
}
return $sessions;
}
Ce serait bien de pouvoir omettre la boucle et d'avoir l'attribut «disponible» déjà défini et rempli.
J'ai essayé d'utiliser certains des événements de modèle décrits dans la documentation pour attacher cette propriété lors du chargement de l'objet, mais sans succès jusqu'à présent.
Remarques:
- «disponible» n'est pas un champ de la table sous-jacente.
$sessions
est renvoyé en tant qu'objet JSON dans le cadre d'une API, et donc appeler quelque chose comme$session->available()
dans un modèle n'est pas une option