2017-03-07 158 views
0

我在我的控制器中有2個方法,我需要驗證它,但我不知道如何。Laravel 5驗證控制器

1方法,應允許所有圖像擴展:

public function testing(Request $request) { 
    if($request->hasFile('img')) { 
     $image = Input::file('img'); 
     $filename = time() . '.' . $image->getClientOriginalExtension(); 
     $path = public_path('images/' . $filename); 
     Image::make($image->getRealPath())->resize(200, 200)->save($path); 
     $file = $request->file('img'); 
     return ['url' => url('images/' . $filename)]; 
    } 
} 

第二個方法,它應該只允許1個字,如果有空間,它修剪到1個字:

public function postDB(Request $request) { 
    $newName = $request->input('newName'); 
    $websites = new Website(); 
    $websites->name = $newName; 
    $websites->save(); 
    return redirect('template')->with('status', 'Website has been saved successfully!'); 
} 

回答

2

先寫新索取您的數據

php artisan make:request ImageRequest 

比寫在ImageRequest

public function authorize() 
{ 
    return true; 
} 

public function rules() 
{ 
    return [ 
     'img' => 'file|image', 
    ]  
} 

如果您想自定義錯誤消息:

public function messages() 
    { 
     return [ 
      'img.image' => 'Some custom message ...', 

     ]; 
    } 

最後注入請求你的方法(不`噸忘記使用App \ HTTP \請求):

public function testing(Requests\ImageRequest $request) { 
    //for retrieving validation errors use: 
     $imgErrors = $errors->first('img'); 
} 

More information形式請求驗證

或者你可以使用驗證外牆(不`噸忘記使用驗證):

$validator = Validator::make(
      $image, [ 
       'img' => 'file|image', 
      ] 
     ); 

More information一個注可選字段

+0

怎麼樣第二個功能? – Przemek

+0

類似於第一種方法,只是改變輸入 –

+0

我不知道如何修剪單詞,如果有多個。 – Przemek