यदि फ़ील्ड पहले से मौजूद है, तो मुझे मान्य करने की आवश्यकता है, त्रुटि फेंकता है, लेकिन इस कोड के साथ कोई त्रुटि ट्रिगर नहीं होती है

लारवेल 7

table: departamento
column: id int incremental
column: departamento varchar(150)
column: idPais       int

स्टोर विधि

$this->validate($request, ['departamento' => Rule::unique('departamento','idPais')->where('departamento',$request->depto)->where('idPais',$request->pais)]);

इसके साथ भी प्रयास करें

 $rules = [
'depto' => [Rule::unique('departamento')->where(function ($query) use ($request) {
    return $query->where('departamento','=', $request->depto)->where('idPais','=', $request->pais);
}),]
];
 $this->validate($request,$rules);

इस कोड के साथ, इस त्रुटि को फेंकता है

 $rules = [
'depto' => [Rule::unique('departamento')->where(function ($query) use ($request) {
    return $query->where('departamento','=', $request->depto)->where('idPais','=', $request->pais);
}),]
];
$this->validate($request,$rules);

error

धन्यवाद!!!

संपादित करें:

मेरा बुरा, मुझे दो क्षेत्रों की जांच करने की आवश्यकता है, डिपामेंटो और आईडीपैस, धन्यवाद।

0
Crashman 13 सितंबर 2020, 09:21

1 उत्तर

सबसे बढ़िया उत्तर

यह आपके क्षेत्र के नाम के कारण हो रहा है। अद्वितीय नियम उस कॉलम नाम के साथ एक रिकॉर्ड खोजने का प्रयास करेगा जो अनुरोध मान पर सेट है (आपके मामले में, depto, लेकिन आपका कॉलम नाम departamento है)। जब आप उस क्वेरी को कस्टमाइज़ कर रहे हैं जिसे आप ओवरराइड नहीं कर रहे हैं, तो आप इस डिफ़ॉल्ट व्यवहार के शीर्ष पर जोड़ रहे हैं। लारावेल डॉक्स से:

डिफ़ॉल्ट रूप से, अद्वितीय नियम मान्य किए जा रहे विशेषता के नाम से मेल खाने वाले कॉलम की विशिष्टता की जांच करेगा। हालांकि, आप अद्वितीय विधि के दूसरे तर्क के रूप में एक अलग कॉलम नाम पास कर सकते हैं:

इसे ध्यान में रखते हुए, आप या तो कॉलम को departamento पर सेट करने के लिए यूनिक नियम को बदल सकते हैं और नीचे दिए गए depto को नहीं, या departamento< को भेजने के अनुरोध को बदल सकते हैं। /code> विशेषता के बजाय depto:

$rules = [
'depto' => [Rule::unique('departamento', 'departamento')->where(function ($query) use ($request) {
    return $query->where('idPais','=', $request->pais);
}),]
];
1
Pirvu2k 13 सितंबर 2020, 12:55