2016-08-10 12 views
6

मैं एक सरणीLaravel in_array सत्यापन नियम

$this->allslots=array('10:00:00', '10:10:00', '10:20:00', '10:30:00', '10:40:00', '10:50:00', '11:00:00', '11:10:00', '11:20:00', '11:30:00', '11:40:00', '11:50:00', '12:00:00', '12:10:00', '12:20:00', '12:30:00', '12:40:00', '12:50:00', '13:00:00', '13:10:00', '13:20:00', '13:30:00', '13:40:00', '13:50:00', '14:00:00', '14:10:00', '14:20:00', '14:30:00', '14:40:00', '14:50:00', '15:00:00', '15:10:00', '15:20:00', '15:30:00', '15:40:00', '15:50:00', '16:00:00', '16:10:00', '16:20:00', '16:30:00', '16:40:00', '16:50:00'); 

अब, मैं डेटाबेस है कि, अगर किसी दिए गए इनपुट ऊपर सरणी के मूल्य में से एक से मेल खाता है करने के लिए डेटा सहेजने से पहले मान्य करने के लिए चाहते हैं परिभाषित किया है। इसके लिए मैं

$this->validate($request, [ 

     'field' => 'required|in_array:$this->allslots', 
    ]); 

लेकिन, यह प्रत्येक इनपुट के लिए सत्यापन त्रुटि देता है। तो, मैं यह कैसे कर सकता हूं?

उत्तर

12

इस प्रयास करें:

'field' => 'required|in:' . implode(',', $this->allslots), 

है कि आप अपेक्षित परिणाम दे सकता है?

+0

हाँ, तो मैं चाहता था .. धन्यवाद एक बहुत .. –

+1

क्या होगा यदि सरणी वस्तुओं में से एक में एक अल्पविराम? तो आप वास्तव में गड़बड़ कर रहे हैं। – kjdion84

+0

@ kjdion84 आपको f.2399 के बजाय 'खराब' का उपयोग करना चाहिए। वो असभ्य हैं। बीटीडब्ल्यू, अगर यह अल्पविराम है तो मेरा समाधान देखें। –

2

इसमें कुछ समय स्वीकार किए जाते हैं जवाब की तुलना में अधिक अर्थ है:

use Illuminate\Validation\Rule; 

$request->validate([ 
    'field' => [ 
     'required', 
     Rule::in($this->allslots) 
    ] 
]); 
संबंधित मुद्दे