国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

新增資源型路由方法 也希望能采納到版本中

TycoonSong

在路由定義的時候是否覺得定義路由很麻煩 尤其是重復的路由定義工作 大型項目的話路由就更多了在路由定義的時候是否覺得定義路由很麻煩 尤其是重復的路由定義工作 大型項目的話路由就更多了

其實我們是可以偷點懶得 當然如果官方在下一個版本中采納了資源型路由 那么請相信 路由重復定義將不再煩惱你

index方法我們常用來獲取列表數(shù)據(jù)
show方法我們常用來獲取詳情
create方法我們常用于獲取新增數(shù)據(jù)
store方法我們常用于新增數(shù)據(jù)提交
update方法我們常用于更新提交
edit方法我們常用于獲取編輯數(shù)據(jù)
destroy方法我們常用于刪除數(shù)據(jù)
recovery 方法我們常用于軟刪除數(shù)據(jù)得恢復操作
當然還得預留其他方法得添加 這樣我們在使用得時候就變得超級簡單
下面得tasA和tapB就是自定義得any路由了
Route::resource('address',UserAddressController::class,['index','create','update','tapA','tapB']);

簡單得方法 我們把route類重新定義一下就好 然后在使用過程中引用這個類即可

use Webman\Route as Router;

class Route extends Router
{
    /**
     * 資源型路由
     * @param string $name
     * @param string $controller
     * @param array $options
     */
    public static function resource(string $name, string $controller, array $options = [])
    {
        if(is_array($options) && !empty($options)){
            foreach ($options as $action) {
                switch ($action){
                    case 'index':
                        static::addRoute('GET', "/{$name}", [$controller,$action]);
                        break;
                    case 'create':
                        static::addRoute('GET', "/{$name}/create", [$controller,$action]);
                        break;
                    case 'store':
                        static::addRoute('POST', "/{$name}", [$controller,$action]);
                        break;
                    case 'update':
                        static::addRoute('PUT', "/{$name}/{id}", [$controller,$action]);
                        break;
                    case 'edit':
                        static::addRoute('GET', "/{$name}/{id}/edit", [$controller,$action]);
                        break;
                    case 'show':
                        static::addRoute('GET', "/{$name}/{id}", [$controller,$action]);
                        break;
                    case 'destroy':
                        static::addRoute('DELETE', "/{$name}/{id}", [$controller,$action]);
                        break;
                    case 'recovery': //還原刪除操作
                        static::addRoute('PUT', "/{$name}/{id}/recovery", [$controller,$action]);
                        break;
                    default:
                        static::addRoute(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'], "/{$name}/{$action}[/{id}]", [$controller,$action]);
                        break;
                }
            }
        }else{
            //為空時自動注冊所有常用路由
            static::addRoute('GET', "/{$name}", [$controller,'index']);
            static::addRoute('GET', "/{$name}/create", [$controller,'create']);
            static::addRoute('POST', "/{$name}", [$controller,'store']);
            static::addRoute('PUT', "/{$name}/{id}", [$controller,'update']);
            static::addRoute('GET', "/{$name}/{id}/edit", [$controller,'edit']);
            static::addRoute('GET', "/{$name}/{id}", [$controller,'show']);
            static::addRoute('DELETE', "/{$name}/{id}", [$controller,'destroy']);
            static::addRoute('PUT', "/{$name}/{id}/recovery", [$controller,'recovery']);
        }
    }
}

如果官方能在webman-framework/src/Route.php中添加此方法 那就更好了

1624 3 1
3個評論

admin

應該做成插件形式,插件加入到bootstrap,然后啟動后,讀取所有app下controller目錄,然后 Route::rule()方法,批量注冊 路由快捷,
tp5有但是tp6就去掉了

  • TycoonSong 2022-03-10

    你說的這個自動路由老大已經(jīng)寫了插件了

liziyu

這個可以有,嚴重關(guān)注!

  • 暫無評論
walkor

發(fā)pr吧,然后記得幫忙寫個文檔。
https://github.com/webman-php/webman-manual

  • 暫無評論
年代過于久遠,無法發(fā)表評論

TycoonSong

1204
積分
0
獲贊數(shù)
0
粉絲數(shù)
2021-10-29 加入
??