J'aimerais pouvoir ajouter un attribut/propriété personnalisé à un modèle Laravel/Eloquent lorsqu'il est chargé, de manière similaire à ce que l'on peut réaliser avec RedBean's $model->open()
méthode.
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 alimenté.
J'ai essayé d'utiliser certains des événements de modèle décrits dans la documentation pour attacher cette propriété lorsque l'objet se charge, mais sans succès jusqu'à présent.
Notes :
- Le terme "disponible" n'est pas un champ de la table sous-jacente.
-
$sessions
est renvoyé sous la forme d'un objet JSON dans le cadre d'une API et, par conséquent, l'appel de quelque chose comme$session->available()
dans un modèle n'est pas une option