2015-07-21 11 views
5

मेरा एप्लिकेशन उपयोगकर्ता को एक ही समय में कई छवि फ़ाइलों को अपलोड करने की अनुमति देता है, हालांकि मैं छवियों की सरणी को सत्यापित करने का तरीका नहीं समझ सकता।लार्वेल में छवि सरणी सत्यापन 5

$input = Request::all(); 

    $rules = array(
     ... 
     'image' => 'required|image' 
    ); 

    $validator = Validator::make($input, $rules); 

    if ($validator->fails()) { 

     $messages = $validator->messages(); 

     return Redirect::to('venue-add') 
      ->withErrors($messages); 

    } else { ... 

यह मान्यता विफल हो जाएगा, के रूप में 'image' एक सरणी है, अगर मैं करने के लिए सत्यापन नियम बदलने के लिए:

$rules = array(
     ... 
     'image' => 'required|array' 
    ); 

प्रमाणीकरण में सफल होगा, लेकिन सरणी के अंदर छवियों सत्यापित नहीं किया गया ।

This answer प्रमाणीकरण नियमों को उपसर्ग करने के लिए प्रत्येक कीवर्ड का उपयोग करता है, हालांकि यह लार्वा 4.2 में है और लैरवेल 5 में यह काम नहीं कर रहा है।

मैं व्यक्तिगत रूप से प्रत्येक छवि पर सरणी और सत्यापन के माध्यम से पुनरावृत्ति करने की कोशिश कर रहा हूं, लेकिन क्या यह मेरे लिए ऐसा करने के लिए एक अंतर्निहित कार्य है?

उत्तर

3

मैंने जेम्यूसु की सिफारिश की एक तकनीक का उपयोग किया और प्रारंभिक सत्यापन के बाद छवियों की सरणी मौजूद है, एक दूसरे वैधकर्ता के साथ सरणी के माध्यम से पुनरावृत्त किया गया है, यह सुनिश्चित करना कि सरणी में प्रत्येक आइटम वास्तव में एक छवि है। कोड यह रहा:

$input = Request::all(); 

$rules = array(
    'name' => 'required', 
    'location' => 'required', 
    'capacity' => 'required', 
    'description' => 'required', 
    'image' => 'required|array' 
); 

$validator = Validator::make($input, $rules); 

if ($validator->fails()) { 

    $messages = $validator->messages(); 

    return Redirect::to('venue-add') 
     ->withErrors($messages); 

} 

$imageRules = array(
    'image' => 'image|max:2000' 
); 

foreach($input['image'] as $image) 
{ 
    $image = array('image' => $image); 

    $imageValidator = Validator::make($image, $imageRules); 

    if ($imageValidator->fails()) { 

     $messages = $imageValidator->messages(); 

     return Redirect::to('venue-add') 
      ->withErrors($messages); 

    } 
} 
11

यह काम करता है मुझे

$rules = array(
 
    ... 
 
    'image' => 'required', 
 
    'image.*' => 'image|mimes:jpg,jpeg' 
 
);

है कि अन्य में कर लिए।

संबंधित मुद्दे