If status=1 =>"Есть в наличии",else "Нет в наличии" Laravel 8

Всем привет. У меня есть таблица "Products" в ней есть поле "Status", она принимает Булевы значения, но как на выходе преобразовывать его в слова "Есть/нет в наличие"?

Где именно прописать это правило и можно ли вообще как-то выходящие данные из БД преобразовывать?

Полагаю нужен middleware? Само условие вроде простое, но как его во вьюхе потом использовать?

Пытался в модели "Product" прописать, но как из модели обратиться к полю в БД, так ведь работать не будет?

    public function isAvailable(){
    if(DB::where('status','1')){
      echo 'Есть в наличии';
    }else{
      echo 'Нет в наличии';
    } 
  }

В программирование не так давно, поэтому если банальщину спрашиваю не ругайтесь. Теорию читал, но на практике лучше усваивается) Заранее спасибо!


Ответы (1 шт):

Автор решения: Walfter

Если делаете через модель Product то достаточно добавить мутатор для модели

public function getIsAvailableAttribute() {
    return $this->status === 1 ? 'Есть в наличии' : 'Нет в наличии';
}

Теперь когда во вьюхе будете обращаться к экземпляру этой модели можете использовать $product->is_available

→ Ссылка