carlosafonso / laravel-crud
在 Laravel 框架之上提供的便捷层,用于开发 CRUD 应用程序
Requires
- php: >=5.5.0
- evalua/php-toolbox: dev-master
- laravel/framework: ^5.1
Requires (Dev)
- codeclimate/php-test-reporter: ^0.2.0
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-08-29 04:14:26 UTC
README
在 Laravel 框架之上提供的便捷层,用于开发 CRUD 应用程序
描述
此项目旨在成为 Laravel 框架之上的一层有用的工具,以简化 CRUD 应用程序的开发。它避免了开发者重复开发 CRUD 逻辑的任务,使他们能够专注于应用程序特定领域的细节。
预期功能
- 无干扰。
- 高度可定制,具有钩子和可覆盖的函数。
- 既适用于 RESTful API(JSON)也适用于标准 HTML 响应。
- 考虑到良好的实践和设计模式。
安装
通过 Composer 安装此包
composer require carlosafonso/laravel-crud
然后,将 Afonso\LvCrud\Providers\LvCrudServiceProvider::class
添加到 config/app.php
中的提供者列表中。
不要忘记发布此包特定的配置文件
php artisan vendor:publish --provider="Afonso\LvCrud\Providers\LvCrudServiceProvider"
这将在你 config
文件夹内添加一个名为 crud.php
的新配置文件。
使用
让任何一个控制器继承自 Afonso\LvCrud\Controllers\CrudController
use Afonso\LvCrud\Controllers\CrudController; class FoosController extends CrudController { // }
这将自动启用 CRUD 行为。
默认模型命名空间
此库假定所有模型都在 App
命名空间下。
App\Controllers\FoosController -> App\Foo
如果你的代码不遵循此约定,可以在控制器中通过覆盖 getModelNamespace
函数来指定默认模型命名空间。
public function getModelNamespace() { return 'My\\Custom\\Namespace'; }
CrudModelInterface
此库期望所有相关模型实现 Afonso\LvCrud\Models\CrudModelInterface
。你可以为所有模型执行此操作,或者仅实现一个基模型类,稍后将其扩展并按需覆盖。
HTML/JSON 支持
默认情况下,CRUD 控制器支持 JSON 和 HTML 响应。可以通过覆盖以下函数来调整此行为
/* * In this example we're only supporting JSON responses. */ public function supportsJson() { return true; } public function supportsHtml() { return false; }
只读控制器
只读控制器不允许创建、更新或删除数据。
可以通过将 $readOnly
标志设置为 true
来声明控制器为只读。
class MyController extends CrudController { protected $readOnly = true; }
只读控制器在执行资源上的 POST、PUT 或 DELETE 操作时将返回 HTTP 状态码 405 Method Not Allowed
。
配置选项
以下属性可以在配置文件 crud.php
中进行修改
default_items_per_page
当未指定 URL 参数 page_size
时,每页默认实体数。