Laravel 4 - 使用包中的验证器进行验证

标签 laravel laravel-4

尝试在我的 Package 类中使用 Validator 类。现在有了 Facades,包含类并使用它们变得有点棘手。

use Illuminate\Validation\Validator
...
protected function valid($request)
{
  return Validator::make($request, ['url'=>'required|url'])->passes();
}

最终给了我:

PHP Fatal error: Call to undefined method Illuminate\Validation\Validator::make()

这是真的,因为我没有使用外观本身。查看 Validator 类构造函数:

__construct(\Symfony\Component\Translation\TranslatorInterface $translator, array $data, array $rules, array $messages) : void

这就是我需要帮助的地方:)

最佳答案

如果您想在包中使用验证器外观,请将您的用途更改为:

use Validator;

或者:

use Illuminate\Support\Facades\Validator;

或者您可以将验证器工厂的实例(这实际上是生成验证器实例的东西)作为依赖项注入(inject)到类中。我假设您正在与服务提供商设置您的套餐,所以类似这样。

$this->app->bind('Package', function($app)
{
    return new YourPackage($app['validator']);
});

然后您应该在构造函数中设置该类的验证器属性。

public function __construct(\Illuminate\Validation\Factory $validator)
{
    $this->validator = $validator;
}

您现在应该能够创建一个新的验证器实例。

return $this->validator->make($request, ['url' => 'required|url'])->passes();

关于Laravel 4 - 使用包中的验证器进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16852427/

相关文章:

laravel - 将mysql中的日期解析为carbon对象,然后转换为本地时区

php - 加密解密环境变量

php - Laravel 4 除了 Controller 构造函数中的过滤器

php - 使用 Laravel 上传多张图片

php - Laravel 4.2 连接表和分页

PHP 服务器在本应报告错误时超时

php - 使用 Laravel 验证器验证自定义日期格式

php - 从 mysql 字段获取总计

laravel - 在 Laravel 中动态编辑 config/database.php 文件

php - 使用 Relation Laravel 5.1 创建记录