Laravel 4 PHP:';使用';包含本地文件和包文件的语句

Laravel 4 PHP:';使用';包含本地文件和包文件的语句,php,laravel-4,Php,Laravel 4,我正在尝试包含一个自定义的验证文件,该文件是我的系统的本地文件,并希望与我在线下载的应用程序中的“包”文件一起使用。这样做的目的是,我可以有自己的自定义验证器,因为我修改了这个应用程序 我一直收到错误->“类”模型\验证程序\照片“未找到” 控制器: use JeroenG\LaravelPhotoGallery\Controllers\AlbumsController; /* From Package */ use JeroenG\LaravelPhotoGallery\Controll

我正在尝试包含一个自定义的验证文件,该文件是我的系统的本地文件,并希望与我在线下载的应用程序中的“包”文件一起使用。这样做的目的是,我可以有自己的自定义验证器,因为我修改了这个应用程序

我一直收到错误->“类”模型\验证程序\照片“未找到”

控制器:

 use JeroenG\LaravelPhotoGallery\Controllers\AlbumsController; /* From Package */

 use JeroenG\LaravelPhotoGallery\Controllers\PhotosController; /* From Package */

 use JeroenG\LaravelPhotoGallery\Models\Album; /* From Package */

 use JeroenG\LaravelPhotoGallery\Models\Photo; /* From Package */

 use Models\Validators as Validators; /* Custom local file */

class EditPhotosController extends PhotosController {

    public function __construct()
    {
       parent::__construct();
    }    

    public function update($albumId, $photoId)
     {
        $input = \Input::except('_method');

        $validation = new Validators\Photo($input); // Here's where error occurs

        /* Validation check and update code etc. */ 
     }  

   }

}
Photo.php->文件路径:Models\Validators\Photo.php

namespace Models\Validators;

class Photo extends Validator {

public static $rules = array(
        'album_id' => 'required',
        'photo_name' => 'required',
        'photo_description' => 'max:255',
    );
}

这只是一个简单的名称空间问题吗?

最可能的问题是composer没有将文件
Models/Validators/Photo.php
添加到自动加载索引中。确保在
composer.json中为文件提供了正确的路径

尝试运行

composer dump-autoload

重新生成自动加载文件。

在我的composer.json文件中,我实际上在我的自动加载索引“app/models”中定义了“models/Validators/Photo.php”所在的位置。我之前尝试过使用“php artisan dump autoload”,但没有任何效果。我有点不愿意使用“composer dump autoload”,因为我不希望它“撤消”我所做的任何更改。根据你的建议,我创建了一个名为“app/validators”的新本地目录,并将自定义验证文件放在其中。在自定义验证文件中,我必须在每个文件的顶部添加“namespace app\validators;”。编写完这个命令后,我进入Putty并键入“php artisan dump autoload”,我的验证现在可以工作了。谢谢你的建议!实际上,它在
app/models
中不起作用的原因是composer没有在目录中查找
PSR-0
匹配项。它只查找包含与file同名的类的直接文件(这意味着不递归)。如果将
PSR-0
PSR-4
对象添加到Composer自动加载数组中,并将
app/models
移动到其中,以前的位置可能会起作用。但是
app/validator
文件夹更有意义。我实际上使用了“php artisan dump autoload”而不是“composer dump autoload”,因为它对我更安全。事实上,我发现这是一个名称空间和“类自动加载”的问题。谢谢你的建议!