2016-02-22 2 views
2

У меня есть конструктор в черт RegistersUsers. Мы можем найти эту черту в указанных ниже путиКонструктор не вызывается в форме RegisterUser: Laravel 5.2

vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php 

Здесь проблема, конструктор не вызывается ... Ниже приведен код.

private function __construct(\App\Caching\CacheCollection $cacheData) 
{ 
    $this->CacheCollection = $cacheData; 
} 

Раньше кто-то сталкивался с подобной проблемой?

+0

Как вы называете регистры? – aynber

+0

У нас есть встроенный регистрационный код в шаблоне Laravel. правильно ? – Pankaj

ответ

1

Если у этого класса есть use, этот конструктор также имеет конструктор, конструктор, предоставленный признаком, не будет использоваться. Приоритет переопределения - методы класса переопределяют методы Trait, которые переопределяют унаследованные методы (Class> Trait> Base). Если у вас есть конструктор в классе, вам нужно его удалить.


Несколько другие ноты:

Во-первых, если это вообще возможно, вы не хотите изменять файлы в каталоге vendor. Любые внесенные изменения будут стерты при следующем composer update, и вы не сможете развернуть эти изменения, если вы не введете свой каталог vendor в свой репозиторий (это не очень хорошая идея). Вы должны сделать новую черту, которая uses эта черта, и включает в себя ваш дополнительный конструктор. Затем в ваших классах используйте этот новый признак, а не черту RegistersUsers.

Во-вторых, вы указали свой конструктор как private. Если вы это сделаете, вы сможете создавать только новые экземпляры класса из класса (например, статический метод, создающий новые экземпляры). Я не знаю, было ли это намеренно или нет, но просто дало вам знать.

Смежные вопросы