2017-09-06 70 views
0

我需要檢查是否需要所有發佈變量,否則拋出錯誤。 到現在我做這樣的REST API post field validation Laravel 5.1

routes.php文件

Route::post('/api/ws_fetchuser', '[email protected]_user_details'); 

UserController.php

<?php 

namespace App\Http\Controllers; 

use App\Http\Requests; 
use Illuminate\Http\Request; 
use App\User; 

class UserController extends Controller 
{ 
    public function fetch_user_details(Request $request) 
    { 
     if(!empty($request) && $request->id!='') 
     { 
      print_r($request->id);  
     } 
     else 
     { 
      return response(array(
      'error' => false, 
      'message' =>'please enter all form fields', 
      ),200);   
     } 

    } 
} 

我檢查這樣$request->id!='',沒有任何驗證規則或者我可以使用方法檢查ID是必填字段。

我已經在我的控制器中添加了此驗證,但是如果id不存在,該如何顯示錯誤?

更新驗證碼:

public function fetch_user_details(Request $request) 
    { 
     $this->validate($request, [ 
     'id' => 'required' 
     ]); 

     print_r($request->id); 

    } 
+0

你有[RTM](https://laravel.com/docs/5.1/validation)? – fubar

+0

我有,但我正在休息API,所以如何來顯示$錯誤? –

+0

請參閱@fubar我已更新我的代碼並添加了驗證我的問題是如果id未發佈,那我該如何處理它們? –

回答

1

$this->validate()方法旨在重定向回來時驗證失敗,所以不是你可以創建一個驗證器實例,並手動獲取錯誤列表。

use Validator; 


$validator = Validator::make($request->all(), [ 
     'id' => 'required' 
    ]); 

if ($validator->fails()) { 
    return json_encode($validator->errors()->all()); 
} 
+1

雖然此代碼片段可能會解決問題,但它並不能解釋爲什麼或如何回答問題。請包含您的代碼的說明,因爲這有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因 –