试图在我的Package类中使用Validator类.现在使用Facades,包含类并使用它们变得有点棘手.
use Illuminate\Validation\Validator
...
protected function valid($request)
{
return Validator::make($request, ['url'=>'required|url'])->passes();
}
Run Code Online (Sandbox Code Playgroud)
结束给我:
PHP致命错误:调用未定义的方法Illuminate\Validation\Validator :: make()
这是真的,因为我没有使用Facade本身.查看Validator类构造函数:
__construct(\Symfony\Component\Translation\TranslatorInterface $translator, array $data, array $rules, array $messages) : void
Run Code Online (Sandbox Code Playgroud)
这是我需要帮助的地方:)
如果您想在包中使用验证器外观,请将您的使用更改为:
use Validator;
Run Code Online (Sandbox Code Playgroud)
要么:
use Illuminate\Support\Facades\Validator;
Run Code Online (Sandbox Code Playgroud)
或者,您可以将验证器工厂的实例(实际上是验证器实例的实例)作为依赖项注入到类中.我假设你正在与服务提供商一起设置你的包裹,所以这样的事情.
$this->app->bind('Package', function($app)
{
return new YourPackage($app['validator']);
});
Run Code Online (Sandbox Code Playgroud)
然后,您应该在构造函数中的该类上设置validator属性.
public function __construct(\Illuminate\Validation\Factory $validator)
{
$this->validator = $validator;
}
Run Code Online (Sandbox Code Playgroud)
您现在应该能够创建一个新的验证器实例.
return $this->validator->make($request, ['url' => 'required|url'])->passes();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2843 次 |
| 最近记录: |