我正在开发一个Laravel包,试图将“照明\验证\工厂”注入到__construct()中:
namespace Extensions\Tpp\Forms;
use Illuminate\Validation\Validator as ValidatorInstance;
use Illuminate\Validation\Factory as Validator;
abstract class FormValidator {
/**
* @var Validator
*/
protected $validator;
/**
* @var ValidatorInstance
*/
protected $validation;
function __construct(Validator $validator)
{
$this->validator = $validator;
}但是得到了以下错误:
Illuminate \ Container \ BindingResolutionException
Target [Symfony\Component\Translation\TranslatorInterface] is not instantiable.我知道这意味着Laravel不知道Symfony\Component\Translation\TranslatorInterface的实现是什么。我的问题是,为什么在普通的Laravel应用程序中,Symfony\Component\Translation\TranslatorInterface可以绑定,但是在Laravel包中,它不是。
谢谢
发布于 2014-06-19 06:40:20
我的问题是为什么在普通的Laravel应用程序中可以绑定Symfony\Component\Translation\TranslatorInterface
这是因为Laravel只使用Symfony组件,Validator类与其他Illuminate组件一起依赖于以下Symfony组件(检查Illuminate\Validation\Validator):
Symfony\Component\HttpFoundation\File\File;
Symfony\Component\Translation\TranslatorInterface;
Symfony\Component\HttpFoundation\File\UploadedFile;您将使用此方法(删除use语句):
function __construct(\Validator $validator)
{
$this->validator = $validator;
}https://stackoverflow.com/questions/24299199
复制相似问题