connor-lock05 / laravel-admin
为Laravel应用程序添加管理面板,允许通过UI修改模型数据
1.3.3
2024-09-08 12:55 UTC
Requires
- php: ^8.2
- laravel/framework: ^11.0
Suggests
- spatie/laravel-permission: Allows for use with Users and Roles
README
目录
简介
为laravel应用程序提供一个简单易用的管理面板,用于创建、查看、编辑或删除模型记录。
安装
您可以通过Composer安装此软件包
composer require connor-lock05/laravel-admin
用法
访问管理面板
要访问管理面板,有两种授权方法。
- 您可以使用
ConnorLock05\LaravelAdmin\Middleware\RoleAuthorisation中间件。这将使用已登录的用户来检查他们是否有正确的角色需要安装spatie/laravel-permission软件包
- 或者,您可以使用
ConnorLock05\LaravelAdmin\Middleware\IpAuthorisation中间件。这将使用请求的IP源与在.env文件中定义的逗号分隔的IP地址列表进行比较。在.env中定义ADMIN_ALLOWED_IPS为允许的IP列表。例如(ADMIN_ALLOWED_IPS=127.0.0.1,127.0.0.2)
当使用RoleAuthorisation时
- 在这里运行spatie/laravel-permission的安装过程这里
- 您需要在RoleAuthorisation中间件之前添加认证中间件,以确保用户已登录。在
laravel-admin.php配置文件中这样做(见配置) - 您需要为管理面板访问创建一个角色并将其添加到配置文件中。
在此处了解如何定制管理配置这里
默认情况下,'Admin'角色允许访问管理面板。
登录后,访问/admin即可进入管理面板仪表板
设置模型
要允许管理面板与模型交互,您需要在模型上使用ConnorLock05\LaravelAdmin\Traits\ModifiedByAdminPanel特质。这将要求您定义两个函数:getModifiableFields和getFieldsForIndexView
getModifiableFields
getModifiableFields函数定义了哪些字段可以通过管理面板进行编辑以及字段的数据类型。此函数返回一个关联数组,其中键是字符串(列名),值是ConnorLock05\LaravelAdmin\Interfaces\Type。
已定义了几个类型
ConnorLock05\LaravelAdmin\Types\Text这是一个字符串字段ConnorLock05\LaravelAdmin\Types\Number这是一个整数字段ConnorLock05\LaravelAdmin\Types\Password这是一个密码字段,值不会添加到编辑的字段上,如果没有提供值,则不会更新ConnorLock05\LaravelAdmin\Types\Picklist这是一个选择字段,在创建时提供了一个选项数组,其中键是选项标签,值是选项值ConnorLock05\LaravelAdmin\Types\TextArea这是一个文本区域字段(适用于文本列类型)ConnorLock05\LaravelAdmin\Types\Related这是一个相关字段,在实例化时提供了一个模型,以及可选的'referenceColumn',它是用作选项标签的字段列名(默认为主键列)
示例
public static function getModifiableFields(): array { return [ 'title' => new Text(), 'user_id' => new Related(User::class, 'name'), 'body' => new TextArea() ]; }
getFieldsForIndexView
getFieldsForIndexView函数定义了索引视图中显示哪些字段。此函数返回一个非关联数组,其中包含要包含的列名字符串
示例
public static function getFieldsForIndexView(): array { return [ 'name', 'email' ]; }
定制
配置
要发布此包的配置,请运行
php artisan vendor:publish --tag="admin-config"
覆盖视图
要发布用于覆盖的视图,请运行
php artisan vendor:publish --tag="admin-views"
视图将被发布到 resources/views/vendor/admin/ 目录下。
许可证
Laravel Admin 是开源软件,遵循 MIT 许可协议。