Comparte:
Livewire validation unique rule custom message
Que tal amigos,
Tengo el siguiente problema al intentar valdiar un regla unica, Lo que busco si exsite el en la DB que me regrese un menssaje personalizado donde pueda agregar algunas variables por ejemplo el nombre del trabajo duplicado y la fecha de cracion entre otros datos
lo resolvi de la siguiente manera, pero no creo que sea la mejor ocpion a ver si me pueden ayudar
Codigo de la clase del componente de livewire
Tengo el siguiente problema al intentar valdiar un regla unica, Lo que busco si exsite el en la DB que me regrese un menssaje personalizado donde pueda agregar algunas variables por ejemplo el nombre del trabajo duplicado y la fecha de cracion entre otros datos
lo resolvi de la siguiente manera, pero no creo que sea la mejor ocpion a ver si me pueden ayudar
Codigo de la clase del componente de livewire
public function rules():array
{
return [
'estimate.branch_id' => ['required'],
'estimate.job_name' =>['required',
Rule::unique('estimates','job_name')->ignore($this->estimate)
],
'estimate.slug' => ['required',
Rule::unique('estimates','slug')->ignore($this->estimate)
],
'estimate.stage_id' => ['required'],
'estimate.takeoff_by' =>['required'],
'estimate.date_completed' => ['nullable','date'],
'estimate.estimator' => ['required'],
'estimate.bid_date' => ['required','date'],
'estimate.project_cost' => ['required'],
'estimate.notes' => ['nullable','string']
];
}
public function getUniqueJobNameMessge()
{
$jobname = Estimate::where('job_name',$this->estimate->job_name)->first();
if($jobname){
$uniqueMessage = 'The :attribute is already in use. (Job: '
.$jobname->job_name.' | Branch: '
.$jobname->branch->short_name.' | TakeOff By: '
.$jobname->takeoff_by.' | Created at: '
.Carbon::parse($jobname->created_at)->format('m/d/Y').')';
}else{
$uniqueMessage = '';
}
return $uniqueMessage;
}
public function messages()
{
return [
'estimate.job_name.unique' => $this->getUniqueJobNameMessge()
];
}