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

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

TycoonSong

在路由定義的時(shí)候是否覺得定義路由很麻煩 尤其是重復(fù)的路由定義工作 大型項(xiàng)目的話路由就更多了在路由定義的時(shí)候是否覺得定義路由很麻煩 尤其是重復(fù)的路由定義工作 大型項(xiàng)目的話路由就更多了

其實(shí)我們是可以偷點(diǎn)懶得 當(dāng)然如果官方在下一個(gè)版本中采納了資源型路由 那么請(qǐng)相信 路由重復(fù)定義將不再煩惱你

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

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

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{
            //為空時(shí)自動(dòng)注冊(cè)所有常用路由
            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中添加此方法 那就更好了

1536 3 1
3個(gè)評(píng)論

admin

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

  • TycoonSong 2022-03-10

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

liziyu

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

  • 暫無評(píng)論
walkor

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

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表評(píng)論

TycoonSong

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