繁体   English   中英

由于供应商文件夹找不到Laravel类?

[英]Laravel class not found because of Vendor folder?

我目前正在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;

    }

供应商文件夹是Composer用于为您维护软件包的文件夹。 因此,如果其他服务器或其他人想签出您的项目,而不是移植所有Laravel使用和其他功能强大的软件包,则可以通过Composer下载自己。

但是,在这种情况下,您需要查看此软件包的文档,并确保已按照自述文件上的说明进行了所有操作,例如在app/config/app.php包括ServiceProvider

https://github.com/tappleby/laravel-auth-token

我对这个特定的包装不是很清楚100%,但请记住在以下情况下转储自动装带器:-

composer dump-autoload

最后,要允许控制器在此类中使用它,请尝试使用列出的其他依赖项进行此操作:-

use \Tappleby\AuthToken\AuthTokenDriver;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM