Home > Software engineering >  how to unique data group validation in form request laravel
how to unique data group validation in form request laravel

Time:11-16

I have two column 'book_name' & 'writer' in 'books' table. When new data insert i want to check the same book and writer not will be added. But i dont understand how to do this. here is my code.

public function rules()
{
    return [
        'book_name' => 'required|unique:books,book_name,' . $this->id,
        'writer' => 'required|unique:books,writer,' . $this->id,
    ];
}

CodePudding user response:

https://laravel.com/docs/9.x/validation#rule-unique

As per documentation, unique rule is applied by defining the rule, stating the table and column name e.g.

unique:table,column

alternativelly if you're using eloquent models it can be

unique:path\to\model,column

The . $this->id constructor should not be needed.

CodePudding user response:

public function rules()
{
    return [
        'book_name' => [
            'required',
            Rule::unique('books')->where(fn ($query) => $query->where('writer', request('writer')))
                ->ignore($this->id)
        ],

        'writer' => 'required',
    ];
}
  • Related