Search code examples
laravelvalidationlaravel-9

unique date validation in update function for a specific meter in laravel 9


This is my store function

public function store(Request $request)
{
    $validatedData = $request->validate( [
        'meter' => 'required',
        'date' => 'required|date_format:Y-m-d||unique:meterreading,date,NULL,meter,meter,'.$request->get('meter'),
    ]);
}

date is unique for a specific meter. Its working perfectly.

And how can i validate this in update function

public function update(Request $request, MeterReading $meterreading)
{
    $updateData = $request->validate( [
        'date' => 'required|date|unique:meterreading,date,'.$meterreading->id.',meter,meter,'.$request->get('meter'),
    ]);

While updating the form the error message comes as

The date has already been taken. How can i clear this. TIA


Solution

  • public function update(Request $request, MeterReading $meterreading)
    {
        $updateData = $request->validate([
            'date' => 'required|date|unique:meterreading,date,'.$meterreading->id.',id,meter,'.$meterreading->meter,
        ]);    
    }