首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5包开发-Auth::to ()导致App\User未找到

Laravel 5包开发-Auth::to ()导致App\User未找到
EN

Stack Overflow用户
提问于 2015-08-03 17:23:23
回答 1查看 853关注 0票数 0

我正在开发一个包,它封装了一些Laravel用户逻辑,因为我希望在添加一些特性的同时保留本机实现。

这是我的包裹的composer.json

代码语言:javascript
复制
{
    "name": "foo/bar",
    "description": "A Laravel 5 package",
    "authors": [
        {
            "name": "",
            "email": ""
        }
    ],
    "require": {
        "php": ">=5.4.0",
        "illuminate/auth": "5.1.*"
    },
    "require-dev": {
        "orchestra/testbench": "~3.0"
    },
    "autoload": {
        "psr-4": {
            "Foo\\": "src/Foo/"
        }
    },
    "minimum-stability": "stable"
}

这是一个示例代码:

代码语言:javascript
复制
class Foo {
    function login($username, $password) { 
        \Auth::attempt($username, $password);
    }
}

这是一个示例测试用例。

代码语言:javascript
复制
class UserServiceTest extends \Orchestra\Testbench\TestCase {
    function testLogin() {
        $foo = new Foo();
        $foo->login('foo', 'bar');
    }
}

现在,在运行测试时,我得到了这个PHP Fatal error: Class '\App\User' not found in path/to/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php on line 126

我可以理解为什么(App\User生活在laravel/laravel包中),但是我无法理解如何正确声明包依赖项。

为了重用整个Auth和User laravel本机实现,我应该做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 21:59:42

您不需要使用laravel/laravel包来重用Laravel的身份验证。

只需导入illuminate/auth包就足够了。这将给出您需要对用户进行身份验证所需的3件事情中的2件:

  • 类(通常通过Auth facade访问),该类提供身份验证方法(尝试、检查等)
  • 基于用户凭据获取用户的用户提供程序--这个包提供了雄辩的和数据库的用户提供程序

您最不需要的是一个用户类,或者任何实现AuthenticatableContract.的模型

用户提供程序作为其构造函数的参数之一,而用户提供程序则将模型的类作为其构造函数的参数之一。

这三个元素足以使用Laravel的身份验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31793183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档