Laravel:依赖注入Auth

时间:2014-11-05 14:35:59

标签: authentication laravel laravel-4 dependency-injection

我如何依赖在Laravel中注入Auth?

像这样:

 public function __construct(Auth $auth)
    {
      $this->auth = $auth;

    }

如果我这样做,那么这不起作用:

$user_type = Auth::user()->user_type;

2 个答案:

答案 0 :(得分:8)

您应该输入提示Illuminate\Auth\AuthManager

public function __construct(Illuminate\Auth\AuthManager $auth)
{
  $this->auth = $auth;
}

答案 1 :(得分:3)

如果你想注入Auth,你实际上需要注入这个类:

use Illuminate\Contracts\Auth\Guard;

这将解决您在内部定义的所有内容:

config/auth.php

如果您想扩展Auth,您可以这样做,但仅限于:

  1. Guard Guard是Guard Class - 它需要实现Guard或StatefulGuard接口。

  2. UserProvider类的提供者 - 它需要实现UserProvider接口。

  3. Laravel / Lumen中的标准Auth Guard驱动程序是:

    1. SessionGuard
    2. TokenGuard
    3. 标准Auth UserProviders在Laravel / Lumen中:

      1. EloquentUserProvider
      2. DatabaseUserProvider
      3. 有关在官方Laravel文档中扩展Auth的更多信息。请参阅以下链接:

        https://laravel.com/docs/5.0/extending#authentication

        这是我在我的控制器中的代码,它就像一个魅力:

            public function createToken(Request $request, Guard $guard)
            {
        //        return 'in progress...';
            }
        

        扩展Auth类的最佳实践是ServiceProvider boot()方法。

        希望这有帮助!

        干杯。