페이스북 Laravel Korea 그룹에 아래와 같은 질문이 올라왔습니다.
호기심이 생겨서 해봤는데 가능하네요.
방법은 간단합니다. DB::raw()
를 사용해서 내장함수를 사용하면 됩니다. DB::raw()는 쿼리빌더를 사용하면서 날쿼리를 함께 사용하고 싶을 때 사용하는 매서드입니다(매뉴얼 참고). 복잡한 쿼리를 작성해야 할 때 주로 쓰이죠. DB::raw()를 마이그레이션에서도 사용할 수 있습니다.
질문에 해당하는 내용은 아래와 같이 할 수 있습니다.
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('content');
$table->uuid('uuid')->default(DB::raw('(uuid())'));
$table->timestamps();
});
디폴트 값에 표현식을 넣는 기능은 MySQL 8.0.13부터 가능한 것 같아요. 관련 내용은 여기를 참고하시기 바랍니다.
1일 1식 라라벨 64호
2019년 10월 1일
메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 처음부터 제대로 배우는 라라벨(Laravel Up & Running 2nd Edition)을 번역했습니다.