我有以下表单验证类:
class EditItemsForm extends Laracasts\Validation\FormValidator
{
protected $rules = [
'name' => 'required|alpha'
];
}
我需要使用$rules
中的值来填充Former::withRules()
,以便它可以做到这一点。
我可以尝试添加一个静态getRules
方法,以便我可以Former::withRules(EditItemsForm::getRules())
获取受保护的值,但这需要创建EditItemsForm
的新实例,其父FromValidator
需要Laracasts\Validation\FactoryInterface
作为第一个构造函数参数。
示例:
public static function getRules()
{
return with(new self(null))->rules;
}
叫我被宠坏了,但我以前从来没有处理过这个问题。因此,当输入值传递给控制器时,习惯于Laravel在后台进行魔法依赖注入。
如何在不必拥有$rules
实例的情况下获取FactoryInterface
的值,或者如何动态创建该实例以将其传递到getRules
?< / p>
答案 0 :(得分:0)
您是否尝试过Laravel的IoC container来实例化EditItemsForm
类。这将解决您的依赖关系。
App::make('EditItemsForm');
Laravel docs的引用
IoC容器功能强大,无需解析任何类 在许多场景中完全配置。例如:
class FooBar { public function __construct(Baz $baz) { $this->baz = $baz; } } $fooBar = App::make('FooBar');