📜  守卫和可填充 laravel 的区别 - PHP (1)

📅  最后修改于: 2023-12-03 14:53:28.619000             🧑  作者: Mango

守卫和可填充 Laravel 的区别 - PHP

Laravel 是一款强大的 PHP 框架,广受开发者的欢迎。其中的守卫(Guard)和可填充(Filling)功能都是 Laravel 中的重要组成部分。

在本文中,我们将深入了解 Laravel 中的守卫和可填充的区别。

守卫(Guard)

Laravel 中的守卫是一种身份验证机制,它可以让开发者轻松地配置、创建和管理多个用户身份验证和授权机制。

守卫可以与多种方式进行集成,如 Session、OAuth 和 JWT。它们还可以通过自定义驱动程序来实现与其他身份验证机制的集成。

以下是一个守卫的示例:

if (Auth::guard('admin')->attempt($credentials)) {
    // 认证成功
}

在上面的示例中,“admin”是守卫的名称。这个名称可以是任何你想要的,只要它在配置文件中有相应的定义。

可填充(Filling)

Laravel 中的填充是一种数据库访问技术,它可以让开发者轻松地创建和更新模型数据。使用可填充技术,可以通过清单(fillable)或防止清单(guarded)将数据库字段与模型属性进行匹配。

以下是一个使用可填充的示例:

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
}

在上面的示例中,$fillable 属性是一个数组,其中包含可以从用户输入中填充到 User 模型中的字段名。这意味着,如果用户试图通过表单提交非法字段,它们将不会被填充到模型中。

可以使用 guard 属性来定义不能通过批量赋值进行分配的字段列表。以下是一个使用 guard 的示例:

class User extends Model
{
    protected $guarded = ['id'];
}

在上面的示例中,$guarded 属性是一个数组,其中包含不可以通过批量赋值进行分配的字段名。

区别

虽然守卫和可填充都是用于保护应用程序的重要组件,但它们的作用是不同的。

守卫是用于身份验证和授权的,它可以让你轻松地管理多个用户身份验证和授权机制。可填充是用于数据库操作的,它可以轻松地创建和更新模型数据。

在 Laravel 应用程序中,你可以同时使用守卫和可填充来保护你的应用程序并保存数据的完整性。

结论

在本文中,我们了解了 Laravel 中的守卫和可填充的区别。守卫是用于身份验证和授权的,它可以让你轻松地管理多个用户身份验证和授权机制。可填充是用于数据库操作的,它可以轻松地创建和更新模型数据。

在实际开发中,你通常需要同时使用守卫和可填充来保护你的应用程序并保存数据的完整性。