加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 无法使Laravel 4的Validator类在框架之外工作

发布时间:2020-12-14 19:34:17 所属栏目:大数据 来源:网络整理
导读:我试图在框架之外使用Laravel’4 Eloquent,因为Illuminate / Database包可以通过作曲家独立使用. Eloquent本身工作正常,但我阻止尝试实现验证规则. 我先尝试过一些像Ardent这样的预建库,然后使用我自己的代码,但结果却是一样的,我得到了这个致命的错误: Fat
我试图在框架之外使用Laravel’4 Eloquent,因为Illuminate / Database包可以通过作曲家独立使用.

Eloquent本身工作正常,但我阻止尝试实现验证规则.

我先尝试过一些像Ardent这样的预建库,然后使用我自己的代码,但结果却是一样的,我得到了这个致命的错误:

Fatal error: Call to a member function make() on a non-object in
vendorilluminatesupportIlluminateSupportFacadesFacade.php on
line 177

当我调用Validator :: make()时,问题总是开始;

$validator = Validator::make(
    $this->attributes,array('name' => 'required')
);

看看调试似乎是static :: resolveFacadeInstance(‘validator’);被调用,但它只返回null.

我不熟悉Facades如何工作,有人能指出我正确的方向吗?谢谢!

这是我的composer.json:

{
    "require": {
        "illuminate/database": "~4.0","illuminate/validation" : "~4.0","laravelbook/ardent": "dev-master"
    },"config": {
        "preferred-install": "dist"
    },"minimum-stability": "dev"
}

解决方法

对于那些可能需要更多信息的人,我将在这里报告由bencorlett (link)在laravel的github回购中给出的答案:

// Store the factory instance somewhere,Maybe like:

class Validator {

    protected static $factory;

    public static function instance()
    {
        if ( ! static::$factory)
        {
            $translator = new SymfonyComponentTranslationTranslator('en');
            static::$factory = new IlluminateValidationFactory($translator);
        }

        return static::$factory;
    }

    public static function __callStatic($method,$args)
    {
        $instance = static::instance();

        switch (count($args))
        {
            case 0:
                return $instance->$method();

            case 1:
                return $instance->$method($args[0]);

            case 2:
                return $instance->$method($args[0],$args[1]);

            case 3:
                return $instance->$method($args[0],$args[1],$args[2]);

            case 4:
                return $instance->$method($args[0],$args[2],$args[3]);

            default:
                return call_user_func_array(array($instance,$method),$args);
        }
    }
}

$validator = Validator::make($data,$rules);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读