实际上,我试图创建一个规则对象,该对象能够验证图像数组中的每种图像类型,不仅足够,而且还必须在规则对象中的覆盖消息功能中显示自定义消息。
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class ImagesArray implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return [$attribute => 'mimes:jpeg,jpg,png' ];
here i need to validate these file types.
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The validation error message.';
here, I need to show my custom messgae.
}
}
答案 0 :(得分:0)
您应使用“请求”。 例如,创建q请求类:php artisan make:request MyRequest。
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class MyRequest 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 [
'image' => 'mimes:jpeg,jpg,png',
];
}
public function messages()
{
return [
'image.mimes' => 'This image is not supported.',
];
}
}
在控制器导入类MyRequest中,并在方法中使用MyRequest 例如:
public function store(MyRequest $request)
{ // your code
}
让我知道是否有帮助。谢谢!
答案 1 :(得分:0)
验证数组或嵌套参数时,应在规则中使用.
访问特定的数组索引。但是如果要对该数组上的每个索引应用规则,则可以使用.*
。
$validator = Validator::make($request->all(), [
'image.*' => 'mimes:jpeg,jpg,png',
], [
'image.*' => 'Invalid file type.',
]);
或者如果您使用的是申请表
public function rules(){
return [
'image.*' => 'mimes:jpeg,jpg,png',
];
}
public function mesages(){
return [
'image.*' => 'Invalid file type.',
];
}