我正在将我的Laravel应用程序从4升级到5.但是,我有一个我无法工作的自定义验证器.
在L4中,我创建了一个validators.PHP文件,并使用require app_path()将其包含在global.PHP中.’/ validators.PHP’;.
我尝试在L5中做同样的事情.我在app / Validators / Validators.PHP中删除了一个验证器,并更新了我的composer.json.
"files": [ "app/Validators/Validators.PHP" ]
但是,现在没有任何页面呈现.我做错了什么?
请尝试以下方法:
>创建一个绑定类,您可以在其中实现要扩展Validator类的每个规则.
>创建一个扩展ServiceProvider的服务提供者.
>在config / app.PHP文件中添加自定义验证器提供程序.
您可以在Services文件夹中创建绑定,如下所示:
namespace MyApp\Services; class Validator extends \Illuminate\Validation\Validator{ public function validateFoo($attribute,$value,$parameters){ return $value == "foo" } }
然后,使用服务提供商扩展核心:
namespace MyApp\Providers; use MyApp\Services\Validator; use Illuminate\Support\ServiceProvider; class ValidatorServiceProvider extends ServiceProvider{ public function boot() { \Validator::resolver(function($translator,$data,$rules,$messages) { return new Validator($translator,$messages); }); } public function register() { } }
最后,在config / app.PHP中导入您的服务提供商,如下所示:
'providers' => [ ... ... 'MyApp\Providers\ValidatorServiceProvider'; ]