Laravel unique validation on multiple columns

前端 未结 8 1653
天涯浪人
天涯浪人 2020-11-27 05:01

I have 2 columns in table servers.

I have columns ip and hostname.

I have validation:

\'data.ip\' => [\'required         


        
8条回答
  •  萌比男神i
    2020-11-27 05:07

    Table

    server

    Field

    • id primary key

    • ip should be unique with hostname

    • hostname should be unique with ip

    Here I validate for Ip and the hostname should be unique.

    use Illuminate\Validation\Rule;
    
    $ip = '192.168.0.1';
    $host = 'localhost';
    

    While Create

    Validator::make($data, [
        'ip' => [
            'required',
             Rule::unique('server')->where(function ($query) use($ip,$host) {
               return $query->where('ip', $ip)->where('hostname', $host);
             });
        ],
    ]);
    

    While Update

    Add ignore after RULE

    Validator::make($data, [
        'ip' => [
            'required',
             Rule::unique('server')->where(function ($query) use($ip,$host) {
               return $query->where('ip', $ip)->where('hostname', $host);
             })->ignore($serverid);
        ],
    ]);
    

提交回复
热议问题