Confluence 에 심각한 보안 취약점이 발견되었으니 사용자분들은 업그레이드 하세요.!
 
1
0
-1

마이그레이션을 만들때 'name'이라는 필드를 기본값은 '홍길동'이라고 했을때

저는 당연히 save 할때 기본값이 있기때문에 따로 name값을 지정하지 않는다면, 홍길동으로 저장될 것을 기대했습니다. 그게 기본값이 가지는 의미니까요(혹시 이게 아닌가요..?)


근데 name값을 지정하지 않고 save 하면 nullable이 아닌데 null을 넣으려고 한다... 라고 합니다.


그래서 nullable까지 넣으면 홍길동이 아닌 null이 들어가버립니다.



어디서 부터 잘못된걸까요.. 필드에는 있지만 특별히 값을 지정하지 않았을때 기본값으로 저장되게 하려면 무엇을 해야될까요..

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      $table->string(‘name’)->default(‘홍길동’);

      1. 정글이야기

        질문에 적혀있듯이 기본값은 설정했습니다.

        마이그레이션 파일에

        $table->string('name', 16)→default('제목없음')

        이렇게 적었고요. 여기 말고 또 해야될 곳이 있나요?

      2. 정글이야기

        검색하다가 해결됐네요


        There's a default middleware that converts empty strings to null, so when it tries inserting the record it's trying to insert null instead of '' which isn't allowed. You could remove the ConvertEmptyStringsToNull middleware in app/Http/Kernel.php if you really want to set the field to an empty string, but if you allow empty strings why not just allow the field to be null?


        ''를 미들웨어가 null로 바꾸고 null을 집어넣는..

      CommentAdd your comment...