@bizgrof
Грустный Front-end разработчик

Нужен совет. Является ли это нормальным switch case в контроллере Laravel 5.4?

Хочу спросить совета по использованию switch case в laravel контроллере.

Суть такая: У меня есть таблица Posts где хранится столбец status

Для своего удобства я в статусах поставил такие возможные варианты ('published', 'approval', 'draft')

В контроллере создал функцию в которой буду проверять статус и переводить на человеческий язык:

public function status($status) {
    	switch ($status) {
		    case 'draft':
		    	$status = 'Черновик';
		    	break;
		    case 'published':
			    $status = 'Опубликовано';
			    break;
		    case 'approval':
		    	$status = 'На утверждении';
		    	break;
		    default:
		    	$status = null;
		    	break;
	    }
    	return $status;
    }


Является ли это нормальным, или есть какие-то более хорошие способы данной реализации?
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
лучше в модели сделайте константу-массив, в котором и переводите это дело, а также сделайте метод тут ж е в моделе для получения статуса

public const STATUSES = [
    'draft' => 'Черновик',
    'published' => 'Опубликовано',
    'approval' => 'На утверждении',
];

public function getRuStatus(string $status): string
{
    if(!isset(self::STATUSES[$status])){
        throw new InvalidArgumentException('Status not found.');
    }

    return self::STATUSES[$status];
}

далее использовать:
$post->getRuStatus($status);

Ну и конечно вам этот массив пригодится например в админке в выпадалке выводить список статусов:
Posts::STATUSES
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы