2017-08-09 136 views
1

驗證傳入的AJAX我有這樣一個觀點:Laravel使用請求

//的視圖片斷

<td><input class="form-field" type="text" id="entity" name="name" data="{{$entity->id}}" value="{{$entity->name}}" onkeyup="validation(this.value);" onblur="updateEntity(this.value,this.name,this.id,{{$entity->id}})"></td> 

<td><input class="form-field" type="text" id="entity" name="type" value="{{$entity->type}}" onkeyup="validation(this.value);" onblur="updateEntity(this.value,this.name,this.id,{{$entity->id}})"></td> 

其具有AJAX:

function updateEntity(value, name, data, id) { 
    $.ajax({ 
     url: '/entityadmin/' + value + '/' + name + '/' + data + '/' + id, 
     method: 'POST', 
     dataType: 'json', 
     success: function(save) { 
      $('.messages').append('<div class="alert alert-success">Type Updated!<div>'); 
      setTimeout(function() { 
       $(".alert").fadeTo(2000, 500).slideUp(500, function(){ 
       $(".alert").slideUp(500); 
       }); 
      }, 4000); 
     }, 
     error: function(data) { 
      console.log(data); 
      $('.messages').append('<div class="alert alert-danger">Error, please try again!<div>'); 
      setTimeout(function() { 
       $(".alert").fadeTo(2000, 500).slideUp(500, function(){ 
       $(".alert").slideUp(500); 
       }); 
      }, 4000); 
     }, 
     headers: { 
     'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
     } 
    }); 
} 

控制器:

public function entityUpdate($value, $name, $data, $id, EntityRequestUpdate $request) { 

     $request->$name = $value; //like this? 
     if($data == "entity") { 
      $save = Entity::find($id); 
     }else{ 
      $save = User::find($id); 
     } 
     $save->$name = $value; 
     $save->save(); 
     return response()->json(['results' => $save]);  
    } 

and request:

public function rules() 
    { 
     return [ 
      'startdate' => 'required|date', 
      'endate' => 'nullable|date', 
      'startime' => 'required|time', 
      'endtime' => 'required|time', 
      'title' => 'required', 
      'type' => 'required', 
      'description' => 'required', 
      'frequency' => 'required', 
      'interval' => 'nullable|numeric', 
      'monthday' => 'nullable|numeric|min:1|max:3', 
      'weekday' => 'nullable|alpha|max:3', 
      'month' => 'nullable|numeric', 
      'until' => 'nullable|date', 
      'tags' => 'nullable', 
      'img' => 'nullable|file|image', 
     ]; 
    } 

的事情是它只有因爲一個字段每次被改變,以驗證一個領域,我怎麼可以用這個驗證來驗證傳入的變量,並在消息上的錯誤返回錯誤阿賈克斯,如果有是任何?

回答

0

可以manually create a validator用於驗證此一個場像這樣:

$validator = Validator::make(
    [ 'name' => $value ], 
    collect($this->rules())->only([$name])->all() 
); 

這個驗證會從定義的規則的name驗證器,並檢查,對值的第一陣列。

+0

它如何知道該特定字段的驗證規則?因爲驗證可能需要名稱或電子郵件或其他任何東西,具體取決於實際編輯內容 –

+0

我更新了問題,以便驗證器使用動態'$ name'。 – Jerodev