我已经阅读了12遍文档,并且创建了以下内容:
class LSDLocationRequest extends FormRequest
{
/**
* 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 [
'organization_id' => 'required',
'name' => 'required|unique:lsd_locations'
];
}
public function messages()
{
return [
'name.unique:lsd_locations' => 'The LSD name is already used by a LSD Location.',
];
}
}
在控制器中,我这样做:
public function store(LSDLocationRequest $request, Organization $organization) {
$request->validated();
// ...
}
当我第一次以“样本位置”的名称提交此表单时,它会起作用。当我第二次使用相同的名称时,它显示给我:
名称已被使用。
我有110%的肯定这是正确的控制器操作。为什么没有显示我的自定义消息?我在表的名称字段上有一个唯一的键。它会忽略我的name.unique:lsd_locations
并编写默认消息。
为什么不使用我的消息?为什么使用默认消息?
答案 0 :(得分:2)
只需将消息更改为:
name.unique
所以应该像这样:
public function messages()
{
return [
'name.unique' => 'The LSD name is already used by a LSD Location.',
];
}