在路由定義的時(shí)候是否覺得定義路由很麻煩 尤其是重復(fù)的路由定義工作 大型項(xiàng)目的話路由就更多了在路由定義的時(shí)候是否覺得定義路由很麻煩 尤其是重復(fù)的路由定義工作 大型項(xiàng)目的話路由就更多了
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']);
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中添加此方法 那就更好了
應(yīng)該做成插件形式,插件加入到bootstrap,然后啟動(dòng)后,讀取所有app下controller目錄,然后 Route::rule()方法,批量注冊(cè) 路由快捷,
tp5有但是tp6就去掉了