由于Vendor文件夹找不到Laravel类?

时间:2014-10-06 20:43:14

标签: php laravel laravel-4

我目前正在我的API中实现基于令牌的身份验证系统。这是由Tappleby构建的,它安装在我的Laravel安装的Vendor文件夹中。这非常适合作为过滤器使用。但是,我需要控制器中的一些包的功能。我向控制器添加了use Tappleby\AuthToken\AuthToken;,并将必要的行添加到__construct。但这并不起作用,因为我不断获得Class AuthTokenDriver does not exist

那是因为该文件位于Vendor文件夹中吗?您可以在下面看到控制器,但请注意,Tappleby\AuthToken\Exceptions\NotAuthorizedException位于Vendor文件夹中。

use Illuminate\Events\Dispatcher;

use Tappleby\AuthToken\Exceptions\NotAuthorizedException;

class ApiUsersController extends ApiController {

    /**
    * @var Acme\Transformers\UserTransformer
    */

    protected $UserTransformer; 

    /**
    * The event dispatcher instance.
    *
    * @var \Illuminate\Events\Dispatcher
    */
    protected $events;

    /**
    * @var \Tappleby\AuthToken\AuthTokenDriver
    */
    protected $driver;

    function __construct(UserTransformer $userTransformer, UserLessonsTransformer $userLessonssTransformer, AuthTokenDriver $driver, Dispatcher $events)
    {

        $this->UserTransformer = $userTransformer;

        $this->UserLessonTransformer = $userLessonTransformer;

        $this->driver = $driver;

        $this->events = $events;

    }

    public function index() 
    {

        $payload = Request::header('X-Auth-Token');

        if(empty($payload)) {

            return $this->respondNotFound('User does not exist.');

        }

        $user = $this->driver->validate($payload);

        return $payload;

    }

1 个答案:

答案 0 :(得分:1)

Vendor文件夹是Composer用于维护您的软件包的内容。因此,如果另一台服务器或其他人想要检查您的项目,而不是移植Laravel使用和附加的所有功能强大的软件包,他们可以通过Composer下载。

但是在这种情况下,您需要查看此软件包的文档,并确保您已按照所有说明进行操作,例如在app/config/app.php中包含composer dump-autoload 也在自述文件中说明: -

ServiceProvider

我对这个特定的套餐并不十分清楚,但请记得在以下情况下转储自动加载器: -

use \Tappleby\AuthToken\AuthTokenDriver;

最后,为了让控制器在这个类中使用它,请尝试使用列出的其他依赖项: -

{{1}}