[英]How to customize error messages in Laravel?
這是我的代碼:
public function store(Request $request){
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'content' => 'required|min:10',
]);
$new_array = array();
$new_array['name'] = $request->name;
$new_array['email'] = $request->email;
$new_array['content'] = $request->content;
contact::create($new_array);
return back();
}
現在我需要為這些過濾器設置一些新的錯誤消息(例如: required
, email
,..) 。
目前,這是required
的默認錯誤消息:
該名稱字段是必需的。
我該怎么改變它?
板條箱規則
public function user_registration_rules(array $data)
{
$messages = [
'full-name.required' => 'Please enter full name',
'address.required' => 'Please enter address'
];
$validator = Validator::make($data, [
'full-name' => 'required|min:5|max:70',
'address' => 'required'
], $messages);
return $validator;
}
在這樣的控制器中使用
$validator = $this->user_registration_rules($request_data);
if($validator->fails())
{
return redirect()->back()->withErrors($validator)->withInput();
}
您可以使用以下命令創建用於處理驗證的Laravel請求
php artisan make:request RequestName
您將在app \\ Http \\ Request中找到該文件
在文件中你會找到rules()函數,你可以在其中提到所有規則
public function rules()
{
return [
'name' => 'required',
];
}
您可以為自定義消息創建message()函數
public function messages()
{
return[
'name.required' => 'The name field is required.'
];
}
在控制器方法中添加此請求
public function methodName(RequestName $request)
{
//Your code
}
您可以像這樣修改驗證器:
$validator = Validator::make($request, [
'name' => 'required',
'email' => 'required|email',
'content' => 'required|min:10',
]);
現在,您將能夠捕獲驗證錯誤:
if ($validator->fails()) {
$error_message = $validator->errors()->all();
// Write Custom Validator Error Message according to the $error_message found.
}
無論如何,Laravel Validator提供了非常全面的錯誤消息。
按照:查看:
<div class="col-md-3">
{{Form::label('Deposit Amount')}}
{{Form::text('deposit_amount',Input::old('deposit_amount'),array('class'=>"form-control"))}}
<span class="error">{!!$errors->first('deposit_amount')!!}</span>
</div>
調節器
use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use DB;
use Hash;
use Auth;
use App\PaymentModel;
use Redirect;
use Response;
class TransactionController extends Controller
{
public function payment(Request $request){
$validator = Validator::make(Input::all(), PaymentModel::Rules(), PaymentModel::$message);
if ($validator->fails())
{
return \Redirect::back()->withErrors($validator)->withInput();
}
else
{
$deposit_amount=Input::get("deposit_amount");
$obj = new PaymentModel();
$obj->deposit_amount=$deposit_amount;
if ($obj->save()) {
Session::flash('success', 'Saved Successfully !!');
} else {
Session::flash('error', 'Some thing went wrong!!');
}
}
return Redirect::action('TransactionController@payment');
}
}
模型
public static function Rules(){
$rules= array(
'deposit_amount'=>'required|numeric',
);
return $rules;
}
public static $messages=array(
'deposit_amount.required'=>'Please Enter Amount ',
'deposit_amount.numeric'=>'Deposit Amount Must be a number ',
);
來自文檔: https : //laravel.com/docs/5.3/validation#customizing-the-error-messages
您可以通過覆蓋messages方法來自定義表單請求使用的錯誤消息。 此方法應返回屬性/規則對的數組及其相應的錯誤消息:
/**
* Get the error messages for the defined validation rules.
*
* @return array
*/
public function messages()
{
return [
'title.required' => 'A title is required',
'body.required' => 'A message is required',
];
}
這只是來自文檔的復制粘貼。 你應該參考laravel docs,它們是最好的文檔之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.