2015-04-29 4 views
0

Я ищу, чтобы иметь отдельный класс для обработки проверки нового пользователя.Laravel - использование класса в той же папке

структура папок:

| app 
    | Website 
    | UserCreator 
     - UserCreator.php 
     - UserValidation.php 

В моем файле UserCreator Я пытаюсь использовать метод в классе UserValidation, как это:

public function createUser($input) 
{ 
    UserValidation::validate($input); 
} 

Однако я получаю это:

Class 'Website\UserCreator\UserValidation' not found 

Это проверенный класс:

<?php 

использование Illuminate \ Support \ Facades \ Validator as Validator;

class userValidation { 

    public static $rules = array(
    'first_name' => 'required', 
    'email_address' => 'unique:users' 
); 

    public static $messages = [ 
    ]; 

    /** 
    * validate the new user input 
    * @param $input 
    */ 
    public function validate($input) { 
    // validate 
    } 

} 

Нужно ли создавать экземпляр класса? Как я это делаю в своем контроллере?

Мой контроллер:

Use Website\UserCreator\UserCreator as UserCreator; 

class UserCreatorController extends BaseController 
{ 

    protected $userCreator; 

    public function __construct(UserCreator $userCreator){ 
    $this->userCreator = $userCreator; 
    } 

    public function addNewUser() { 
    return $this->userCreator->createUser($input); 
    } 


} 

Поскольку классы находятся в той же папке, я не думаю, что мне нужно пространство имен валидации один/определить использование для этого в UserCreator?

Куда я иду не так?

+0

Как выглядит ваш файл 'UserValidation'? –

+0

@KevinNagurski только что отредактировал вопрос, чтобы показать его :) – Lovelock

ответ

1

Попробуйте добавить пространство имен ... PHP не заботится о том, в каком каталоге находится ваш файл, поэтому обязательно укажите namespace Website\UserCreator;. Если это не работает, каков ваш автозагрузчик?

+0

Работал после команды дампа ремесленника :) Спасибо. – Lovelock

+0

Рад, что вы его отсортировали :-) –

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