Me gustaría poder agregar un atributo / propiedad personalizado a un modelo Laravel / Eloquent cuando se carga, de forma similar a cómo se podría lograr con el $model->open()
método de RedBean .
Por ejemplo, en este momento, en mi controlador tengo:
public function index()
{
$sessions = EventSession::all();
foreach ($sessions as $i => $session) {
$sessions[$i]->available = $session->getAvailability();
}
return $sessions;
}
Sería bueno poder omitir el ciclo y tener el atributo 'disponible' ya establecido y poblado.
Intenté usar algunos de los eventos del modelo descritos en la documentación para adjuntar esta propiedad cuando se carga el objeto, pero hasta ahora no he tenido éxito.
Notas:
- 'disponible' no es un campo en la tabla subyacente.
$sessions
se devuelve como un objeto JSON como parte de una API y, por lo tanto, llamar a algo como$session->available()
en una plantilla no es una opción