Files
sam-manage/app/Models/Boards/BoardSetting.php
hskwon 58009e675d feat: [boards] MNG 게시판 관리 시스템 구현
- Models: Board, BoardSetting (커스텀 필드)
- Service: BoardService (CRUD, 필드 관리)
- Controllers: BoardController (Blade), Api/Admin/BoardController (API)
- Views: index, create, edit, table partial
- 커스텀 필드 다중 추가 모달 (한 줄 레이아웃, + 버튼 추가)
2025-11-28 08:50:47 +09:00

60 lines
1.3 KiB
PHP

<?php
namespace App\Models\Boards;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* 게시판 필드 설정 (EAV 스키마 정의)
*
* @property int $id
* @property int $board_id
* @property string $name 필드명
* @property string $field_key 필드 키
* @property string $field_type 필드 타입
* @property array|null $field_meta 필드 메타
* @property bool $is_required 필수 여부
* @property int $sort_order 정렬 순서
*/
class BoardSetting extends Model
{
protected $table = 'board_settings';
protected $fillable = [
'board_id',
'name',
'field_key',
'field_type',
'field_meta',
'is_required',
'sort_order',
'created_by',
'updated_by',
];
protected $casts = [
'field_meta' => 'array',
'is_required' => 'boolean',
'sort_order' => 'integer',
];
protected $attributes = [
'is_required' => false,
'sort_order' => 0,
];
public function board(): BelongsTo
{
return $this->belongsTo(Board::class, 'board_id');
}
/**
* field_meta에서 특정 키 값 가져오기
*/
public function getMeta(string $key, $default = null)
{
return data_get($this->field_meta, $key, $default);
}
}