Вы можете использовать модель getter / setters для этого. Вот грубая реализация, в которой вы бы включили предоставленное значение, но вам может потребоваться вставить это в статический массив ключей / значений, чтобы лучше отобразить между ними.
public function getStatusAttribute($value)
{
switch ($value) {
case 0:
return 'Success';
case 1:
return 'Closed';
}
}
public function setStatusAttribute($value)
{
switch ($value) {
case 'Success':
return $this->attributes['status'] = 0;
case 'Closed':
return $this->attributes['status'] = 1;
}
}
Редактировать: для справки, вот как можно использовать статический массив, чтобы сохранить отображение в одном месте.
class Model
{
static $statuses = ['Success', 'Closed'];
public function getStatusAttribute($value)
{
return static::$statuses[$value];
}
public function setStatusAttribute($value)
{
$this->attributes['status'] = array_search($value, static::$statuses);
}
}