luilliarcec/laravel-user-commands

Laravel User Commands 是一个提供用户操作所需命令的包。

3.1.1 2021-09-02 22:28 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:15 UTC


README

run-tests Latest Version on Packagist Quality Score Total Downloads GitHub license

如果你像我一样,考虑过在应用程序内部操作用户命令,这个包将帮助你。

安装

您可以通过 composer 安装此包

composer require luilliarcec/laravel-user-commands

现在通过运行以下命令将配置文件发布到您的应用程序配置目录

php artisan vendor:publish --provider="Luilliarcec\UserCommands\UserCommandsServiceProvider"

这就完成了。😄

用法

该包有 4 个基本命令

创建用户

php artisan user:create
字段

在执行命令时将使用您模型中定义的 fillable 属性中的所有字段。如果您想添加更多字段,您可以从配置文件中这样做(您的文件优先于您的模型,因此如果您的配置文件中定义了字段,则将忽略 fillable 属性中的字段)

规则

无论您在模型中还是在配置文件中定义了字段,filled 规则将动态应用于这些字段。如果您想添加自定义规则,您可以从配置文件的 rules 键中进行操作,这些规则将合并,那些没有指定自定义规则的字段将默认使用 filled 规则。

最后,您可以自由扩展命令并按您的喜好进行配置。

php artisan user:create -a username:larcec -a "other_field:Value of field"

php artisan user:create --attributes=username:larcec --attributes="other_field:Value of field"

如果您想标记用户的电子邮件为已验证,可以通过传递 --verified 参数。例如:

php artisan user:create --verified

如果您的模型使用角色和权限,您必须在配置文件中配置角色和权限的模型以及关系的名称。

然后您可以将权限或角色作为参数传递。

php artisan user:create -p "user-create" -p "user-edit"

应注意,rolespermissions
必须在您的数据库中已经存在,并且将通过 name 字段进行搜索

一旦创建用户,如果它实现了 MustVerifyEmail 接口并且存在 verification.verify 路由名称,将发送已创建的通知。

如果您想应用自己的逻辑或仅保存所有用户的默认数据,您可以通过扩展命令并应用必要的逻辑,或者复制 prepareForSave 方法并添加必要的数据。例如:

<?php

namespace App\Commands;

use Luilliarcec\UserCommands\Commands\CreateNewUserCommand as CreateNewUserCommandBase;

class CreateNewUserCommand extends CreateNewUserCommandBase
{
    protected function prepareForSave(): array
    {
        return $this->merge([
            'password' => Hash::make($this->data['password']),
            'username' => Username::make($this->data['name']),
        ]);
    }
}

$this->data 将包含请求的用户数据,如果您想通过 --attribute 标志访问您输入的数据,您可以通过调用 attributes 函数来实现,该函数将返回一个 key => value 数组,包含您的数据。

重置密码用户

重置密码用户命令需要值参数。它将通过 email 进行搜索,如果找不到,则通过 id 进行搜索

php artisan user:reset-password luis@email.com

但是,如果您想搜索特定字段,可以在值后面传递它

php artisan user:reset-password larcec -f username

php artisan user:reset-password larcec --field username

执行命令后,它将要求您输入新密码并确认它

删除用户

reset password user 命令一样,通过电子邮件或 id 或指定特定字段来搜索用户。

php artisan user:delete luis@email.com

php artisan user:delete larcec --field username

如果您的模型使用逻辑删除,这将是默认执行的,但如果您想完全删除,可以传递 --force 参数

php artisan user:delete larcec --field username --force

恢复用户

reset password user 命令一样,通过电子邮件或 id 或指定特定字段来搜索用户。

php artisan user:restore luis@email.com

php artisan user:restore larcec --field username

请注意,此命令仅在您的模型使用 SoftDelete 特性时才会运行

具有角色和权限的用户

如果您想为您的用户添加角色和权限,不要忘记在配置文件中配置关系名称,除了角色和权限模型。

授予用户权限就像这样简单

php artisan user:create -p "user-create" -p "user-edit"

php artisan user:create --permissions="user-create" --permissions="user-edit"

如果您想授予所有权限,可以这样做

php artisan user:create -p *

注意,您必须发送单个权限标志,否则它将不起作用。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何安全相关的问题,请通过电子邮件luilliarcec@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件