smorken / ext-controller
为 Laravel 6+ 扩展的控制器助手
v6.2
2021-07-26 17:15 UTC
Requires
- php: ^7.2||^8.0
Requires (Dev)
- illuminate/routing: ^6.0
- illuminate/support: ^6.0
- mockery/mockery: ^1.0
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
- smorken/cache-assist: ^6.0
- smorken/docker: *
- smorken/storage: ^6.0
This package is auto-updated.
Last update: 2024-09-27 00:03:13 UTC
README
Laravel 控制器扩展
包含一些基本 Laravel 控制器的助手。
BaseController 包含一些最小功能,包括设置模板视图、视图名称和子导航键。
具有完整功能的控制器
<?php
use App\Contracts\Storage\MyProvider;
use App\Http\Requests\Admin\MyFormRequest;
use Illuminate\Foundation\Http\FormRequest;
use Smorken\Ext\Controller\Traits\IndexFiltered;
use Smorken\Ext\Controller\Traits\Crud;
class MyController extends \Smorken\Ext\Controller\BaseController
{
use IndexFiltered, Crud {
doSave as traitDoSave;
}
/**
* Base view "path". View name of route is appended to create
* the complete view name
*/
protected $base_view = 'admin.my';
/**
* Optional property that is passed to the view (can
* be used to dynamically include a content layout
* in a master blade template
*/
protected $template = 'layouts.templates.two_col';
public function __construct(MyProvider $provider) {
$this->setProvider($provider);
parent::__construct();
}
public function doSave(MyFormRequest $request, $id = null)
{
return $this->traitDoSave($request, $id);
}
protected function getAttributes(FormRequest $request)
{
return $request->only(['foo', 'bar']);
}
}
此示例控制器将依赖于以下命名的视图
- /admin/my
- create.blade.php
- delete.blade.php
- index.blade.php
- update.blade.php
- view.blade.php
特性
Actions:包含向视图中添加功能的功能。
Cache:包含清除缓存的功能。
Core:包含核心功能,设置共享变量、视图名称等。包含通用的路由构建器。
Create:包含 create get 路由
Crud:包括进行基本 CRUD 操作所需的所有特性
Delete:包含 delete 和 doDelete 路由
Filter:包含创建过滤器功能
Index:包含 index 路由
IndexFiltered:包含带有过滤器的 index 路由
Model:包含 loadModel 方法
Provider:包含处理提供者的方法
Save:包含 doSave post 路由
Update:包含 update get 路由
View:包含 view get 路由