백엔드/Laravel

[Laravel] update시에는 unique validation 무시하기

독-방 2019. 2. 8. 16:27

기존 코드


1
2
3
4
5
6
7
    public function rules()
    {
        return [
            'domain' => 'required|unique:system.tenants|max:15'
        ];
    }
 
cs


기존 코드에서는 모델을 업데이트 할때도 unique 유효성 검사를 하기 때문에 문제가 됐었다.

이를 해결하기 위해 unique 검사를 할 때 특정 id의 값은 무시하는 방법이 있다.


1
2
3
4
5
6
7
8
9
10
11
    public function rules()
    {
        return [
            'domain' => [
                'required',
                'max:15',
                Rule::unique('system.tenants')->ignore($this->id)
            ]
        ];
    }
 
cs


참고 링크: https://laravel.kr/docs/5.7/validation#unique:%3Cem%3Etable%3C/em%3E,%3Cem%3Ecolumn%3C/em%3E,%3Cem%3Eexcept%3C/em%3E,%3Cem%3EidColumn%3C/em%3E