gpt4 book ai didi

php - laravel 中的 Eloquent 和数据库身份验证驱动程序有什么区别

转载 作者:搜寻专家 更新时间:2023-10-31 20:35:05 24 4
gpt4 key购买 nike

在 laravel 中,config/auth.php

我们默认有这个

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

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

最佳答案

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

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

来自Laravel documentation :

If your application is not using Eloquent, you may use the database authentication driver which uses the Laravel query builder.

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

关于php - laravel 中的 Eloquent 和数据库身份验证驱动程序有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com