Eu gostaria de poder adicionar um atributo / propriedade personalizado a um modelo Laravel / Eloquent quando ele for carregado, semelhante a como isso pode ser alcançado com o $model->open()
método do RedBean .
Por exemplo, no momento, no meu controlador, tenho:
public function index()
{
$sessions = EventSession::all();
foreach ($sessions as $i => $session) {
$sessions[$i]->available = $session->getAvailability();
}
return $sessions;
}
Seria bom poder omitir o loop e ter o atributo 'disponível' já definido e preenchido.
Tentei usar alguns dos eventos de modelo descritos na documentação para anexar essa propriedade quando o objeto for carregado, mas sem sucesso até o momento.
Notas:
- 'disponível' não é um campo na tabela subjacente.
$sessions
está sendo retornado como um objeto JSON como parte de uma API e, portanto, chamar algo como$session->available()
em um modelo não é uma opção