首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >传递声明(string $attribute,$value):bool必须与Illuminate\Contracts\Validation\Rule::passes($attribute,$value兼容)

传递声明(string $attribute,$value):bool必须与Illuminate\Contracts\Validation\Rule::passes($attribute,$value兼容)
EN

Stack Overflow用户
提问于 2018-06-01 05:03:49
回答 1查看 282关注 0票数 0

我已经创建了一个自定义验证规则

代码语言:javascript
复制
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;
use Exception;

class ValidFoo implements Rule
{
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes(string $attribute, $value): bool
    {
        if (!$foo) {
            return false;
        }

        return true;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message(): string
    {
        return 'The foo you \'ve provided is not valid.';
    }
}

然而,当我尝试提交表单时,我得到了这个错误

代码语言:javascript
复制
Symfony\Component\Debug\Exception\FatalErrorException (E_UNKNOWN)
Declaration of App\Rules\ValidFoo::passes(string $attribute, $value): bool must be compatible with Illuminate\Contracts\Validation\Rule::passes($attribute, $value)

这是Laravel的规则界面

代码语言:javascript
复制
namespace Illuminate\Contracts\Validation;

interface Rule
{
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value);

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 05:20:07

代码语言:javascript
复制
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;
use Exception;

class ValidFoo implements Rule
{
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        if (!$foo) {
            return false;
        }

        return true;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message(): string
    {
        return 'The foo you \'ve provided is not valid.';
    }
}

这是一个已更正的类。出现错误是因为您使用了类型命中,但接口没有使用类型提示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50632759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档