以下是我在控制器(Laravel 5)上使用創建/存儲和編輯/更新方法的一種表單驗證請求的解決方案。Laravel表單請求和驗證
這是一個繁瑣而醜陋的黑客攻擊(即它讀取URI段以獲取正在編輯的記錄的ID)。有沒有更好的方法來確定請求是否從編輯/更新請求接收信息? (不直接傳遞$ ID和標誌要求)
/**
* Sets the basic validation rules that apply to the request.
*
* @return array
*/
protected $rules = [
'trading_name' => 'required|min:3|max:50|unique:companies',
'legal_name' => 'required|min:3|max:50|unique:companies',
'legal_identifier' => 'required|min:3|max:50|unique:companies',
'status' => 'required',
'website' => 'active_url',
'type' => 'required',
'payment_terms' => 'required|integer|min:0|max:180',
'credit_limit' => 'required|integer|min:0|max:500000',
'notes' => 'max:2000',
];
/**
* Sets addition validation rules depending on the request type (i.e. edit & update).
*
*
* @return array
*/
public function rules()
{
$rules = $this->rules;
if ($this->is('companies/*') == true) #Add a ignore self-unique rule as this is a edit&update request
{
$id = $this->segment(2);
$rules['trading_name'] = $rules['trading_name'].',trading_name,'.$id;
$rules['legal_name'] = $rules['legal_name'].',legal_name,'.$id;
$rules['legal_identifier'] = $rules['legal_identifier'].',legal_identifier,'.$id;
}
return $rules;
}
其實你可以直接調用段的名稱。這個控制器的路線是什麼樣的?我會告訴你如何稱呼它。 – mininoz
控制器是一個laravel「資源」,即Route :: resource('companies','CompaniesController'); @mininoz –