让我先显示我的代码。这是我的控制器功能代码
public function save(Request $request) {
try {
$this->validate($request, Venue::rules()); // Validation Rules
$venue = Venue::saveOrUpdate($request);
if($venue !== false) {
if($request->get('continue', false)) {
return redirect()->route('admin.venue.edit', ['id' => $venue->id])->with('success', trans('admin.venue.save_success'));
} else {
return redirect()->route('admin.venue.index')->with('success', trans('admin.venue.save_success'));
}
} else {
return back()->with('error', "Unable to save venue")->withInput();
}
} catch (\Exception $ex) {
return back()->with('error', "Unable to save venue")->withInput();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的模型功能代码
public static function rules($id = '') {
return [
'name' => 'required|string|max:255',
'logo' => 'required',
'status' => 'required|string|in:' . implode(",", Venue::STATUSES),
'venue_type_id' => 'required|string|not_in:0',
'client_id' => 'required|string|not_in:0',
];
}
Run Code Online (Sandbox Code Playgroud)
所以现在当我提交表单验证显示消息时。我想更改此消息。我该怎么做。
小智 8
您可以通过以下方式自定义验证消息,
前往 resources->lang->en->validation.php
在这里你看到,
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
Run Code Online (Sandbox Code Playgroud)
根据您的需要编辑它们。
这就是我处理这个问题的方法,可以作为指导。从您的表单中,您基本上有 4 个输入字段,假设它们被命名为name、client、logo 和venue_type。控制器中验证表单请求的函数如下所示:
注意 - 您应该放置 -
使用验证器;使用 Illuminate\Http\Request;- 在班上名列前茅
公共函数 validateFormRequest($request){
尝试
{
//在这里指定您的自定义消息
$消息= [
'required' => ':attribute 字段为必填',
'string' => ':属性必须是文本格式',
'file' => ':属性必须是一个文件',
'mimes' => ':attribute 支持的文件格式为 :mimes',
'max' => ':attribute 的最大长度必须为 :max',
];
$validator = Validator::make($request->all(), [
'名称' => '必需|字符串|最大:75',
'客户端' => '必需|字符串|最大:75',
'徽标' => '必需|文件|mimes:jpeg,png,jpg,gif',
'venue_type' => '必需|字符串',
], $messages);
if($validator->失败()){
// 验证失败..记录错误或将错误返回到视图/刀片
} 别的{
// 验证通过。返回 true 或肯定信息。即请求可以保存
}
}catch(异常$ex){
//记录您的错误或将一些错误消息返回到您的视图/刀片
}
}
您可以自定义error messages使用的form request通过重写messages()方法。messages在您的Venue课程上添加自定义,如下所示:
public static function messages($id = '') {
return [
'name.required' => 'You must enter your name',
'logo.required' => 'You must upload logo',
'key.rules' => 'your messages'
];
Run Code Online (Sandbox Code Playgroud)
然后在您的控制器上添加messages第三个parameter赞-
$this->validate($request, Venue::rules(), Venue::messages());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7792 次 |
| 最近记录: |