728x90
사용이유:
- 미사용시 하나의 값이 변경이 될 경우 전부 텍스트를 검색하여 하나하나 변경을 해줘야한다.
- 상수로 정의해두면 모델에서 한눈에 변경해야될 부분을 찾을 수 있다.
- 또한 배열로 정의해두었다가 in_array 등으로 포함여부를 확인할 수 있고 모델에서 배열 내용을 쉽게 추가, 삭제 가능하다.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
// 정의한 상수
public const TYPE_HOME_SHOPPING = 'HOME_SHOPPING';
public const TYPE_SOCIAL = 'SOCIAL';
public const TYPE_OPEN_MARKET = 'OPEN_MARKET';
// 정의한 배열
public const TYPES = [
self::TYPE_HOME_SHOPPING => '홈쇼핑',
self::TYPE_SOCIAL => '소셜',
self::TYPE_OPEN_MARKET => '오픈마켓',
];
public const SELL_TYPES = [
self::TYPE_HOME_SHOPPING,
self::TYPE_SOCIAL,
self::TYPE_OPEN_MARKET,
];
}
<?php
use App\Models\YourModel;
// 모델을 사용하여 데이터베이스에서 값을 가져오는 예제
$dataFromDatabase = YourModel::find(1);
// 가져온 값의 유형에 따라 해당 상수 또는 배열 사용
if ($dataFromDatabase->type === YourModel::TYPE_HOME_SHOPPING) {
echo "이 제품은 홈쇼핑에서 구매되었습니다.";
} elseif ($dataFromDatabase->type === YourModel::TYPE_SOCIAL) {
echo "이 제품은 소셜에서 소개되었습니다.";
} elseif ($dataFromDatabase->type === YourModel::TYPE_OPEN_MARKET) {
echo "이 제품은 오픈마켓에서 구매 가능합니다.";
} else {
echo "유효하지 않은 유형입니다.";
}
// 유형에 해당하는 사람이 읽기 쉬운 이름을 가져오는 예제
$readableTypeName = YourModel::TYPES[$dataFromDatabase->type];
echo "이 제품은 '{$readableTypeName}' 유형입니다.";
- 특정 기준으로 여러 상수를 배열화하여 사용
<?php
$socialCode = [
Kakao::CODE_KAKAO => '카카오톡',
Grip::CODE_GRIP => '그립',
Tmon::CODE_TMON => '티몬',
];
?>
<div class="btn btn-primary btn-xs" id="btn_order_add">
<i class="fa fa-comment-o"></i> <?=$socialCode[$code_channel]?> 결제 추가
</div>