Laravel - 在同一文件夹中使用 class
Laravel - using a class in the same folder
我希望有一个单独的 class 来处理新用户的验证。
文件夹结构为:
| app
| Website
| UserCreator
- UserCreator.php
- UserValidation.php
在我的 UserCreator 文件中,我试图在 UserValidation class 中使用这样的方法:
public function createUser($input)
{
UserValidation::validate($input);
}
但是我得到这个:
Class 'Website\UserCreator\UserValidation' not found
这是验证class:
<?php
使用Illuminate\Support\Facades\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
}
}
我需要像这样实例化一个 class 吗?正如我在我的控制器中所做的那样?
我的控制器是:
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);
}
}
因为 classes 在同一个文件夹中,我认为我不需要为验证命名空间/在 UserCreator 中定义它的用途?
我哪里错了?
尝试添加命名空间...PHP 不关心文件所在的目录,因此请确保指定 namespace Website\UserCreator;
。如果那不起作用,您的自动加载器是什么样的?
我希望有一个单独的 class 来处理新用户的验证。
文件夹结构为:
| app
| Website
| UserCreator
- UserCreator.php
- UserValidation.php
在我的 UserCreator 文件中,我试图在 UserValidation class 中使用这样的方法:
public function createUser($input)
{
UserValidation::validate($input);
}
但是我得到这个:
Class 'Website\UserCreator\UserValidation' not found
这是验证class:
<?php
使用Illuminate\Support\Facades\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
}
}
我需要像这样实例化一个 class 吗?正如我在我的控制器中所做的那样?
我的控制器是:
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);
}
}
因为 classes 在同一个文件夹中,我认为我不需要为验证命名空间/在 UserCreator 中定义它的用途?
我哪里错了?
尝试添加命名空间...PHP 不关心文件所在的目录,因此请确保指定 namespace Website\UserCreator;
。如果那不起作用,您的自动加载器是什么样的?