smorken/ext-controller

为 Laravel 6+ 扩展的控制器助手

v6.2 2021-07-26 17:15 UTC

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:包含 deletedoDelete 路由

Filter:包含创建过滤器功能

Index:包含 index 路由

IndexFiltered:包含带有过滤器的 index 路由

Model:包含 loadModel 方法

Provider:包含处理提供者的方法

Save:包含 doSave post 路由

Update:包含 update get 路由

View:包含 view get 路由