<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 路由器 ### 基本路由 雖然為[后端控制器](https://octobercms.com/docs/backend/controllers-ajax)自動處理路由,并且CMS頁面在其[頁面配置中](https://octobercms.com/docs/cms/pages#configuration)定義了自己的URL路由,但路由器服務主要用于定義固定的API和端點。 您可以通過在與[插件注冊文件](https://octobercms.com/docs/plugin/registration)相同的目錄中創建一個名為**route.php**的文件來定義這些路由。最基本的路由只接受URI和:[](https://octobercms.com/docs/plugin/registration)`Closure` ~~~ Route::get('/', function () { return 'Hello World'; }); Route::post('foo/bar', function () { return 'Hello World'; }); Route::put('foo/bar', function () { // }); Route::delete('foo/bar', function () { // }); ~~~ #### 注冊多個動詞的路線 有時您可能需要注冊一個響應多個HTTP動詞的路由。您可以使用立面上的`match`方法來這樣做`Route`: ~~~ Route::match(['get', 'post'], '/', function () { return 'Hello World'; }); ~~~ 您甚至可以使用以下`any`方法注冊一個響應所有HTTP動詞的路由: ~~~ Route::any('foo', function () { return 'Hello World'; }); ~~~ #### 生成路由的URL 您可以使用`Url`立面生成指向路線的URL: ~~~ $url = Url::to('foo'); ~~~ ### [](https://octobercms.com/docs/services/router#route-parameters)路線參數 ### [](https://octobercms.com/docs/services/router#required-parameters)必要參數 有時您需要捕獲路由內的URI段,例如,您可能需要從URL中捕獲用戶的ID。您可以通過定義路由參數來做到這一點: ~~~ Route::get('user/{id}', function ($id) { return 'User '.$id; }); ~~~ 您可以根據自己的路線定義任意多個路線參數: ~~~ Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); ~~~ 路線參數始終放在單個*大括號內*。`Closure`執行路線時,參數將傳遞到您的路線中。 > **注意:**路由參數不能包含`-`字符。請改用下劃線(`_`)。 ### [](https://octobercms.com/docs/services/router#parameters-optional-parameters)可選參數 有時,您可能需要指定一個路由參數,但使該路由參數的出現為可選。您可以通過`?`在參數名稱后放置一個標記來做到這一點: ~~~ Route::get('user/{name?}', function ($name = null) { return $name; }); Route::get('user/{name?}', function ($name = 'John') { return $name; }); ~~~ ### [](https://octobercms.com/docs/services/router#parameters-regular-expression-constraints)正則表達式約束 您可以`where`在路由實例上使用方法來限制路由參數的格式。該`where`方法接受參數名稱和正則表達式,該正則表達式定義應如何約束參數: ~~~ Route::get('user/{name}', function ($name) { // })->where('name', '[A-Za-z]+'); Route::get('user/{id}', function ($id) { // })->where('id', '[0-9]+'); Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']); ~~~ ### [](https://octobercms.com/docs/services/router#named-routes)命名路線 命名路由使您可以方便地生成URL或特定路由的重定向。`as`定義路由時,可以使用數組鍵為路由指定名稱: ~~~ Route::get('user/profile', ['as' => 'profile', function () { // }]); ~~~ #### 路線組和命名路線 如果您使用的是[路由組](https://octobercms.com/docs/services/router#route-groups),則可以`as`在路由組屬性數組中指定一個關鍵字,從而可以為該組內的所有路由設置通用的路由名稱前綴: ~~~ Route::group(['as' => 'admin::'], function () { Route::get('dashboard', ['as' => 'dashboard', function () { // Route named "admin::dashboard" }]); }); ~~~ #### 生成命名路由的URL 為給定路由分配名稱后,可以在生成URL或通過`Url::route`方法重定向時使用路由名稱: ~~~ $url = Url::route('profile'); $redirect = Response::redirect()->route('profile'); ~~~ 如果路由定義了參數,則可以將參數作為第二個參數傳遞給`route`方法。給定的參數將自動插入URL: ~~~ Route::get('user/{id}/profile', ['as' => 'profile', function ($id) { // }]); $url = Url::route('profile', ['id' => 1]); ~~~ ### [](https://octobercms.com/docs/services/router#route-groups)路線組 路由組使您可以在大量路由之間共享路由屬性,而無需在每個單獨的路由上定義那些屬性。共享屬性以數組格式指定為方法的第一個參數`Route::group`。 ### [](https://octobercms.com/docs/services/router#route-group-sub-domain-routing)子域路由 路由組也可以用于路由通配符子域。可以為子域分配路由參數,就像路由URI一樣,允許您捕獲子域的一部分以在路由或控制器中使用。可以使用`domain`組屬性數組上的鍵來指定子域: ~~~ Route::group(['domain' => '{account}.example.com'], function () { Route::get('user/{id}', function ($account, $id) { // }); }); ~~~ ### [](https://octobercms.com/docs/services/router#route-group-prefixes)路由前綴 該`prefix`組陣列屬性可被用于前綴與給定URI的組中的每個路由。例如,您可能想在組內的所有路由URI前面加上`admin`: ~~~ Route::group(['prefix' => 'admin'], function () { Route::get('users', function () { // Matches The "/admin/users" URL }); }); ~~~ 您還可以使用`prefix`參數為分組的路由指定通用參數: ~~~ Route::group(['prefix' => 'accounts/{account_id}'], function () { Route::get('detail', function ($account_id) { // Matches The accounts/{account_id}/detail URL }); }); ~~~ ### [](https://octobercms.com/docs/services/router#route-middleware)路由中間件 在插件的`boot()`方法中注冊中間件將針對每個請求在全局范圍內注冊它。如果您想一次將中間件注冊到一個路由,則應這樣做: ~~~ Route::get('info', 'Acme\News@info')->middleware('Path\To\Your\Middleware'); ~~~ 對于路由組,可以這樣進行: ~~~ Route::group(['middleware' => 'Path\To\Your\Middleware'], function() { Route::get('info', 'Acme\News@info'); }); ~~~ 最后,如果要將一組中間件分配給一個路由,可以這樣 ~~~ Route::middleware(['Path\To\Your\Middleware'])->group(function() { Route::get('info', 'Acme\News@info'); }); ~~~ 當然,您可以在一個組中添加多個中間件,為方便起見,在上述示例中僅使用了一個。 ### [](https://octobercms.com/docs/services/router#throwing-404-errors)引發404錯誤 有兩種方法可以從路由手動觸發404錯誤。首先,您可以使用`abort`助手。該`abort`助手簡單地拋出一個`Symfony\Component\HttpFoundation\Exception\HttpException`具有指定狀態代碼: ~~~ App::abort(404); ~~~ 其次,您可以手動拋出的實例`Symfony\Component\HttpKernel\Exception\NotFoundHttpException`。 有關處理404異常以及對這些錯誤使用自定義響應的更多信息,可以在文檔的“[錯誤和日志記錄”](https://octobercms.com/docs/services/error-log)部分中找到。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看