kjjdion / laracrud
为 Laravel 5.8 专门设计的简单 CRUD 后端包。
Requires
README
包不再维护
请考虑使用 Laravel AJAX CRUD 代替: https://github.com/kdion4891/laravel-ajax-crud
Laracrud
为 Laravel 5.8 专门设计的简单 CRUD 后端包。
截图: https://imgur.com/a/rAWwEvu
功能
- 用于快速生成资源(控制器、模型、迁移、视图、路由)的 CRUD 命令
- 基于用户角色的资源路径和权限
- 内置用户 CRUD
- 集成 Laravel 登录认证
- 集成 Datatables
- 基于模型表列的动态模型填充
- 易于扩展的控制器
- AJAX 表单验证
- 完全响应式(Bootstrap 4)
- & 更多
安装
此包与干净的 Laravel 安装配合最佳,但也可以与现有安装一起使用。
- 通过 composer 安装:
composer require kjjdion/laracrud
- 在您的
.env
文件中配置应用程序名称、URL、数据库等。 - 在
config/app.php
中设置应用程序时区(推荐但不是必需的)。
配置
如果您正在干净的 Laravel 5.8 应用程序上安装,请使用 --force
php artisan vendor:publish --provider="Kjjdion\Laracrud\Providers\LaracrudServiceProvider" --tag="install" --force
如果您正在现有的 Laravel 5.8 应用程序上安装,请勿使用 --force
php artisan vendor:publish --provider="Kjjdion\Laracrud\Providers\LaracrudServiceProvider" --tag="install"
如果您 没有 使用 --force
,您还必须进行以下修改
- 将
ColumnFillable
特性添加到您的User
模型。 - 清空
public/css/app.css
和public/js/app.js
的内容以避免冲突。 - 在
routes/web.php
中将默认的/
路由重定向到login
:Route::redirect('/', 'login')
- 如果存在,则删除默认的 Laravel 认证路由。
提示: 您可以在 config/laracrud.php
中更改默认的 Fontawesome 图标类。
迁移
完成安装和配置后,运行: php artisan migrate
登录
访问您的应用程序 URL。您应该会看到登录界面。默认管理员登录信息如下
- 电子邮件: admin@example.com
- 密码:admin123
调整细节
此包旨在极具灵活性和可修改性。
扩展控制器
如果您想修改默认的包控制器,只需创建自己的控制器,这些控制器扩展了包控制器,然后更新 config/laracrud.php
中的新控制器路径。
修改布局
包使用的所有布局文件都位于 resources/views/vendor/laracrud/layouts/*
。您可以在这些文件中进行任何修改。请注意,每次生成 CRUD 时,都会自动在 nav
布局文件中插入新的导航链接。
发布包文件
可以发布所有包文件以进行进一步的调整。以下标签可用
config
:发布配置文件migrations
:发布迁移views
:发布所有视图install
:发布所有必要的安装文件
例如,发布配置文件
php artisan vendor:publish --provider="Kjjdion\Laracrud\Providers\LaracrudServiceProvider" --tag="config"
用户角色概念
可在 config/laracrud.php
中修改可用的用户角色。每次为新的角色生成 CRUD 时,应将所述角色添加到 roles
数组中。
概念很简单,每个角色都有自己的控制器、视图和路由,以便分离每个角色的关注点/权限。
所有角色的资源命名空间/路径都以前缀了该角色的名称,例如,管理员角色的资源位于
App\Http\Controllers\Admin
resources/views/admin
route('admin.models.*')
您还可以使用Gate
中间件和blade指令,并在其中包含角色名称,以确保用户具有该角色,例如:
@can('Admin')
$this->middleware(['auth', 'can:Admin']);
CRUD 生成器
您可以使用 CRUD 命令来创建新资源的控制器、模型、迁移、导航链接、视图和路由。这可以节省大量时间和麻烦。
要生成新资源,请运行:php artisan make:crud "角色名称" "模型名称"
角色名称将用于控制器命名空间、视图和路由路径。 如果角色或模型名称包含多个单词,请确保使用引号和空格。此外,请确保使用单数形式,而不是复数。
例如,假设我想让管理员能够访问一个新的 Car
资源。我会运行 php artisan make:crud Admin Car
。现在管理员可以访问这个新资源了。
脚手架只为模型生成具有 name
属性。您必须更新控制器、模型、迁移、视图和路由,以添加生成资源所需的新属性或功能。
准备好后,您可以通过运行 php artisan migrate
来运行新资源的迁移。
JSON 响应
由于所有表单都使用 AJAX,因此期望控制器返回具有特定键/值对的 JSON 响应,例如:
return response()->json([
'flash_now' => ['success', 'User created!'],
'dismiss_modal' => true,
'reload_datatables' => true,
]);
以下键/值对可用。
'dismiss_modal' => true,
关闭当前打开的 Bootstrap 模态框。
'flash_now' => ['success', 'User created!'],
立即显示警告。第一个数组元素是 bootstrap 类名,第二个是消息。
'flash_after' => ['success', 'User created!'],
在下一个请求中显示警告。这对于在重定向/页面重新加载后显示警告很有用。
`redirect` => route('login'),
将用户重定向到指定的 URL。
`reload_datatables` => true,
在页面上用更新后的数据重新加载数据表。
`reload_page` => true,
重新加载用户当前所在的页面。
自定义响应
如果您希望添加自己的 JSON 响应处理器,您可以在 public/js/app.js
文件中通过利用 ajaxComplete
方法来实现
$(document).ajaxComplete(function (event, xhr, settings) {
if (xhr.hasOwnProperty('responseJSON') && xhr.responseJSON.hasOwnProperty('do_my_function')) {
console.log(xhr.responseJSON.do_my_function);
}
});
在上面的示例中,您的 JSON 响应的键将是 do_my_function
。