如何添加'验证器'这个代码的类让它工作?

时间:2014-09-26 15:45:19

标签: php validation laravel

这是我一直收到的错误:反射异常类验证器不存在这是导致问题的代码:

  use Illuminate\Support\ServiceProvider;

 class DeskServiceProvider extends ServiceProvider
{
/**
 * Register bindings
 *
 * @return void
 */
public function register()
{
    $this->repositories();

    $this->app->bind('Desk\Forms\MessageForm', function($app) {
        $validator = $app->make('validator')->make([], []);
        return new \Desk\Forms\MessageForm($validator);
    });
}
}

我现在知道我需要添加一个Validator类,但我不确定放在哪里或放什么。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您的问题和您的代码一样令人困惑。如果看起来你正在尝试绑定服务。

$this->app->bind('Desk\Forms\MessageForm'

但是,您不是要告诉Laravel您要用来标识服务的服务名称(例如dbmessage_form等),而是传递一个类名({{1 }})。

然后,您正在使用应用程序的Desk\Forms\MessageForm工厂来实例化make对象。目前尚不清楚您是否尝试使用validator从名为make的类中实例化对象,或者您是否尝试从名为Validator的服务实例化服务对象。如果是后者,则表示您的应用程序中不存在validator服务。如果是前者,它看起来不像一个名为validator的类被定义为Laravel可以自动加载的任何地方。

关于下一个显而易见的问题:Laravel可以从哪里自动加载,你要么在编辑器包的Validator文件夹中想要这个Validator类,以PSR有效的方式命名。如果你没有使用作曲家,这是一个本地应用程序,最简单的办法是删除文件

src

但是,如果您尝试使用内置的Laravel Validator service facade/object,那么您的问题也不清楚。一个更好的问题可能会产生更好的答案。 (可能有兴趣和自我链接,我正在撰写一系列解释the Laravel application container的文章,你可能会发现这些文章很有用。)。

相关问题