【问题标题】:what is the difference between Eloquent and database authentication drivers in laravellaravel 中 Eloquent 和数据库认证驱动有什么区别
【发布时间】:2016-10-17 08:45:56
【问题描述】:

在 laravel 里面,config/auth.php

我们默认有这个

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],

我的问题是这两个驱动程序有什么区别? 如果我将驱动程序更改为database 是否意味着我不能再使用 eloquent 了?

【问题讨论】:

    标签: php database laravel authentication


    【解决方案1】:

    有一个区别:eloquent 对表使用 ORM 抽象,而database 使用直接 SQL 查询。如果您打算拥有一个自定义的 Auth 类,则 ORM 抽象更容易扩展。如果你(只有表并且你不打算扩展你的 Auth 层)或(你不使用 Eloquent 做其他事情),那么数据库是一个不错的选择。

    这种差异的技术原因是微妙的,也许令人惊讶:基于 Laravel 的应用程序不需要使用 Eloquent ORM。在这种情况下,应用程序可能仍然希望使用 Laravel 提供的身份验证外观,因此 Laravel 需要一种不同的方式来存储和检索身份验证数据:因此需要数据库驱动程序。

    来自Laravel documentation

    如果您的应用程序没有使用 Eloquent,您可以使用使用 Laravel 查询构建器的数据库身份验证驱动程序。

    大多数基于 Laravel 的应用程序都使用 Eloquent,因此默认使用 Eloquent Auth 类。如果您将驱动程序更改为database,您仍然可以在您的应用程序中使用 Eloquent,尽管我无法想象这种组合的用例。

    【讨论】:

    • 您可以将您的最后一条评论添加到答案中吗?所以我可以回答这个问题
    猜你喜欢
    • 2015-12-03
    • 2017-03-31
    • 1970-01-01
    • 2019-11-24
    • 2022-12-29
    • 1970-01-01
    • 2011-12-08
    • 2013-04-14
    • 1970-01-01
    相关资源
    最近更新 更多