Validation Laravel Validator::validateString | max不存在错误

Validation Laravel Validator::validateString | max不存在错误,validation,laravel-5,dimension,Validation,Laravel 5,Dimension,在我的Laravel 5.6.33应用程序中,我需要使用规则检查上传文件的尺寸 'avatar' => [ 'string|max:50', Rule::dimensions()->maxWidth(96)->maxHeight(64)->ratio(3 / 2), ], onImageSelected(event) { this.is_page_updating = true co

在我的Laravel 5.6.33应用程序中,我需要使用规则检查上传文件的尺寸

    'avatar' => [
        'string|max:50',
        Rule::dimensions()->maxWidth(96)->maxHeight(64)->ratio(3 / 2),
    ],
    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
但我有一个错误:

Method Illuminate\Validation\Validator::validateString|max does not exist.
    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
在规则声明中,我添加了一行:

use Illuminate\Validation\Rule;
    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
但我还是有错误

    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
我错过了什么

    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
修改2: 我从你们的评论中看出了一点: 我在文件选择上有js函数的文件输入

<input type="file" style="display: none" ref="file_input" accept="avatar/*" @change="onImageSelected">
    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
以及制定规则:

    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
'avatar' => [
    'string',
    'max:100',
],
'avatar_url' => [
    Rule::dimensions()->maxWidth(2896)->maxHeight(2864),
],
我也有同样的错误。看起来这是错误的方式。。。
哪种方法正确?

你应该这样写:

    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },
“化身”=>[
'字符串',
"最高限额:50",,
规则::dimensions()->maxWidth(96)->maxHeight(64)->比率(3/2),

],

您没有向我们显示完整的验证代码…您在验证什么输入?这是一个字符串输入吗?你的答案很好,虽然它让我想知道。。。是一根绳子吗。。或者它是一张图片。我的答案是关于语法的,我也想知道如何将文件验证为字符串。请看我第一篇文章的修改后的2块。在验证规则中,将“avatar\u url”更改为“user\u avatar\u url”
    onImageSelected(event) {
        this.is_page_updating = true
        const files = event.target.files
        let filename = files[0].name
        this.user_avatar = filename;
        if (filename.lastIndexOf('.') <= 0) {
            return alert('Select valid avatar !')
        }
        const fileReader = new FileReader()
        fileReader.addEventListener('load', () => {
            this.user_avatar_url = fileReader.result
        })
        fileReader.readAsDataURL(files[0]);
        this.is_page_updating = false
    },