2014-09-03 12 views
0

Я создал простой класс Car, который принимает 2 аргумента в своем конструкторе, Wheels и SteeringWheel оба этих аргумента являются другими объектами.laravel app :: make() возвращает ошибку

Когда я печатаю App::make('Car'), насколько я помню, он должен создать экземпляр объекта Car и делать инъекции зависимости от его собственного, даже без привязки к Car класса. Однако, когда я это делаю, я получаю сообщение об ошибке: ReflectionException: Class Car does not exist даже tho Я использовал пространство имен Car, выполнив: use Acme\Car в верхней части страницы.

Однако, если я обеспечиваю функции make полный «путь» к Car класса, это работает: App::make('\Acme\Car'); Любая идея, как я могу заставить его работать, даже если я типа Car только?

ответ

2

Функция App::make() не использует включенные в верхней части страницы, она создает класс из строки, которую вы предоставляете. Если вы хотите использовать только Car, удалите namespace Acme из класса Car.

+0

я вижу. Ну, это вполне понятно, почему я думаю. Спасибо за разъяснение моего подозрения. – kfirba

+0

Просто, чтобы прояснить что-то, если бы я добавил класс 'Car' как псевдоним, было бы хорошо, если бы я набрал только« Car »? И, как получилось, если вы используете модель, она работает? все модели находятся в глобальном пространстве имен? – kfirba

+0

Если вы не помещаете 'namespace' в модели самостоятельно, они по умолчанию не находятся в пространстве имен/в глобальном пространстве имен. Если вы добавите 'Car' в качестве псевдонима, он должен работать. – gidomanders

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