【发布时间】:2017-07-22 02:04:13
【问题描述】:
我有一个服务提供者:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use \Validator;
use App\Services\CustomValidator;
class AppServiceProvider extends ServiceProvider
{
public function boot() {
Validator::extend('firstname_fail', 'App\Services\CustomValidator@fullnameFailValidate');
Validator::extend('lastname_fail', 'App\Services\CustomValidator@lastnameFailValidate');
Validator::extend('hotel_fail', 'App\Services\CustomValidator@hotelFailValidate');
Validator::extend('city_fail', 'App\Services\CustomValidator@cityFailValidate');
}
}
我有一个模型 Tourist,它具有以下属性:名字、姓氏、酒店、城市。并且可以添加一些其他(许多)属性。
(我知道如何从 Tourist 模型中获取所有字段名称:$array = Schema::getColumnListing('tourists');)
所以我的问题是如何动态创建:
Validator::extend('fieldname_fail', "App\Services\CustomValidator@fieldnameFailValidator')
在 boot() 方法中?
我尝试使用魔术_call方法,但没有成功...
任何帮助表示赞赏!:)
【问题讨论】:
-
我可以通过网络闻到这个!这么多的魔法很糟糕,当你在 30 天后回来时,你将不知道这部分应用程序是如何工作的。