moraesgil / api-restful-trait
一个简单的Laravel特性,实现了restful crud功能。
v1.0.0
2018-09-29 01:46 UTC
Requires
This package is auto-updated.
Last update: 2024-09-16 09:14:31 UTC
README
一个简单的Laravel特性,实现了restful crud功能。
安装
使用Composer
$ composer require moraesgil/api-restful-trait
{ "require": { "moraesgil/api-restful-trait": "~1.0" } }
用法
在routes/api.php或您偏好的路由文件中创建您的路由
Route::resource('/samples', 'YourLaravelController', ['except' => ['create', 'edit', 'show']]);
确保您有一个名为App\Entities\YourModel的模型,其名称与控制器相同,以自动加载模型实体,或者您可以注入依赖项,请参阅以下 Extras 区域中的以下说明...
//terminal
php artisan make model YourLaravel
在您的控制器中
use Traits\Controllers\ApiRestfulTrait; //<<<<< add this line class YourLaravelController extends Controller { use ApiRestfulTrait; //<<<<< add this line // ..others non-crud methods }
包含EntityValidatorTrait,这是一个依赖项。请参阅文档以获取更多信息。此外,请参阅本节中关于自动加载模型实体的信息。
use Traits\Entities\EntityValidatorTrait; //<<<<< add this line class YourLaravel extends Model { use EntityValidatorTrait; //<<<<< add this line }
Extras
获取索引页面
如果您不是ajax请求,可能需要在index()中调用页面,我们有一个getPage(),您可以重写方法或通过构造函数传递数据,您还可以通过传递路由名称重定向到另一个页面;
//in or controller you can pass class YourLaravelController extends Controller { public function __construct() { //Passing view and data $this->indexView = "youCrudBlade"; //default "crud" $this->indexData = [ "pageTitle" => "Page title for exemple" ]; // OR redirect to named route $this->indexRedirectRouteName ="myroute.indexpage" } }
自动加载模型实体
默认情况下,它尝试访问与控制器同名的模型,您可以在构造函数中通过名称或对象传递您的实体;
class YourLaravelController extends Controller { public function __construct(Mymodel $m) { $this->Model = $m; // or $this->modelName = "Mymodel"; // or Just create a model same name of controller, from this controller sample "YourLaravel" } }
从实体自定义方法获取数据
默认情况下,它返回Laravel分页,限制由请求决定,您可以重写方法或从您的实体调用自定义方法,传递$modelGetMethod;
class YourLaravelController extends Controller { public function __construct() { $this->modelGetMethodName = "myCustomPaginate"; } }
依赖项
- EntityValidatorTrait - 允许模型进行自我验证的特性 - EntityValidatorTrait
作者
- Gilberto Prudêncio Vaz de Moraes - 初始工作 - MoraesGil
许可
本项目采用MIT许可 - 请参阅LICENSE文件以获取详细信息