2017-07-03 61 views
1

我正在使用FormRequest來驗證刪除請求,但我不需要訪問我的控制器內部的請求。我只需要它進行驗證。是否可以在不依賴注入的情況下驗證FormRequest?

我發現未使用的變量令人討厭,但我無法看到the docs中的任何內容,這表明我可以調用該類上的任何內容來驗證它。

形式要求:

class DeleteList extends FormRequest 
{ 
    protected $errorBag = 'delete_list'; 

    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'confirm' => 'required|accepted' 
     ]; 
    } 
} 

控制器:

public function postDelete(DeleteList $request, ListService $listService, $site, $list) 
{ 
    $listService->delete($site, $list); 
    return redirect()->route('site.lists', ['site' => $site]); 
} 

回答

0

你可以這樣做:

public function postDelete(ListService $listService, $site, $list) 
{ 
    $this->validate(request(), ['confirm'=>'required|accepted']); 

    $listService->delete($site, $list); 
    return redirect()->route('site.lists', ['site' => $site]); 
} 

但我個人喜歡你的更好的解決方案,即使這意味着有一個未使用的變量。

+0

我離開驗證控制器內部的原因是爲了能夠在需要的情況下複製驗證規則,它只是令人討厭的是它未被使用! –

相關問題