国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Luthier CI 路由 Routes

RichardXG / 2390人閱讀

摘要:使用時,必須為每個路由定義接受的謂詞,并且任何與這些參數(shù)不匹配的請求都將生成錯誤。使用,可以使用匿名函數(shù)作為控制器,甚至可以在不使用單個控制器的情況下構(gòu)建完整的應(yīng)用程序。通過使用您告訴的方法,該路由將在請求下可用。

路由 ( Routes ) 內(nèi)容 ( Contents )

介紹 Introduction

路由類型 Route types

句法 Syntax

命名空間 Namespaces

前綴 Prefixes

命名路線 Named routes

回調(diào)為路線 Callbacks as routes

組 Groups

資源路線 Resource routes

默認(rèn)控制器 Default controller

參數(shù) Parameters

可選參數(shù) Optional parameters

參數(shù)正則表達式 Parameter regex

“粘性”參數(shù) "Sticky" parameters

介紹 ( Introduction )

Luthier CI更改CodeIgniter路由的行為:

在CodeIgniter中,默認(rèn)情況下,可以在任何HTTP謂詞下訪問路由。使用Luthier CI時,必須為每個路由定義接受的HTTP謂詞,并且任何與這些參數(shù)不匹配的請求都將生成404錯誤。

在CodeIgniter中,可以直接從URL訪問控制器,而無需定義路由。另一方面,使用Luthier CI,嘗試訪問未定義的路徑(即使URL與控制器的名稱和方法匹配)也會生成404錯誤。

在CodeIgniter中,路由參數(shù)是指向控制器的簡單正則表達式,在Luthier CI中,路由是一個獨立且唯一的實體,它包含定義明確的參數(shù)以及從中構(gòu)建URL的能力。

在CodeIgniter中,您只能創(chuàng)建指向控制器的路由。使用Luthier CI,可以使用匿名函數(shù)作為控制器,甚至可以在不使用單個控制器的情況下構(gòu)建完整的Web應(yīng)用程序。

路由類型 ( Route types )

您可以使用三種類型的路由:

HTTP routes: 它們在HTTP請求下訪問,并在application/routes/web.php文件中定義

AJAX routes: 它們僅在AJAX請求下訪問,并在application/routes/api.php文件中定義

CLI routes: 它們僅在CLI(命令行界面)環(huán)境下訪問,并在application/routes/cli.php文件中定義

AJAX路由進入api.php

雖然你可以在 web.php 文件中定義AJAX路由,但最好這樣做 api.php

如果您使用相同的URL和相同的HTTP動詞定義兩條或更多路線,則第一條路線將被返回ALWAYS
Luthier CI允許您使用動詞GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS和TRACE定義HTTP路由:

句法 ( Syntax )

如果您使用過Laravel,那么您將知道如何使用Luthier CI,因為它的語法是相同的。這是路線最簡單的例子:

Route::get("foo", "bar@baz");

第一條路由是獲勝的路由

其中foo是路徑的URL,bar @ baz是它所指向的控制器和方法(由@分隔)的名稱。通過使用get()您告訴Luthier CI 的方法,該路由將在GET請求下可用。

Luthier CI允許您使用動詞GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS和TRACE定義HTTP路由:

Route::post("foo", "bar@baz");
Route::put("foo", "bar@baz");
Route::patch("foo", "bar@baz");
Route::delete("foo", "bar@baz");
Route::head("foo", "bar@baz");
Route::options("foo", "bar@baz");
Route::trace("foo", "bar@baz");

此外,您可以將具有路徑屬性的數(shù)組作為第三個參數(shù)傳遞(稍后解釋)。

Route::get("test", "controller@method", ["prefix" => "...", "namespace" => "...", (...)] );

要在路由中接受多個HTTP謂詞,請使用以下match()方法:

Route::match(["GET", "POST"], "path", "controller@method", [ (...) ]);
命名空間 ( Namespaces )

namespace屬性告訴CodeIgniter控制器所在的子目錄。(注意,這不是PHP名稱空間,它是目錄名稱)

// The controller is located in application/controllers/admin/Testcontroller.php
Route::get("hello/world", "testcontroller@index", ["namespace" => "admin"]);
前綴 ( Prefixes )

使用該prefix屬性為路由添加前綴:

// The URL will be "admin/hello/world" instead of "hello/world"
Route::get("hello/world", "testcontroller@index", ["prefix" => "admin"]);
命名路由 ( Named routes )

您可以(事實上,這是可取的)為您的路線指定一個名稱。這將允許您從其他地方調(diào)用它們:

Route::get("company/about_us", "testcontroller@index")->name("about_us");

要通過它的名稱獲取路由,請使用該route()函數(shù),其第一個參數(shù)是路由的名稱,第二個可選參數(shù)是具有該路由的參數(shù)值的數(shù)組。例如,要獲取上一個路由,只需寫route("about_us"):

// http://example.com/company/about_us
">My link!

重復(fù)的名稱 ( Duplicated names )

您不能使用相同的名稱調(diào)用兩個或多個路由

組 ( Groups )

您可以使用該group()方法創(chuàng)建路由組,其中第一個參數(shù)是它們共有的前綴,第二個參數(shù)是具有子路由的匿名函數(shù):

Route::group("prefix", function(){
    Route::get("bar","test@bar");
    Route::get("baz","test@baz");
});

此外,可以為路由組分配共同的屬性。這是擴展語法的示例:

Route::group("prefix", ["namespace" => "foo", "middleware" => ["Admin","IPFilter"]], function(){
    Route::get("bar","test@bar");
    Route::get("baz","test@baz");
});
資源路由 ( Resource routes )

資源路由允許您在單行上為控制器定義CRUD操作(Create, Read, Update, Delete) 例:

Route::resource("photos","PhotosController");

生產(chǎn):

[Name]                 [Path]               [Verb]          [Controller action]
photos.index           photos               GET             PhotosController@index
photos.create          photos/create        GET             PhotosController@create
photos.store           photos               POST            PhotosController@store
photos.show            photos/{id}          GET             PhotosController@show
photos.edit            photos/{id}/edit     GET             PhotosController@edit
photos.update          photos/{id}          PUT, PATCH      PhotosController@update
photos.destroy         photos/{id}          DELETE          PhotosController@destroy

此外,可以創(chuàng)建部分資源路由,傳遞第三個參數(shù),其中包含要過濾的操作數(shù)組:

Route::resource("photos","PhotosController", ["index","edit","update"]);

生產(chǎn):

[Name]                 [Path]               [Verb]          [Controller action]
photos.index           photos               GET             PhotosController@index
photos.edit            photos/{id}/edit     GET             PhotosController@edit
photos.update          photos/{id}          PUT, PATCH      PhotosController@update
默認(rèn)控制器 ( Default controller )

Luthier CI自動設(shè)置使用URL / 和HTTP謂詞 GET 定義的任何路由作為默認(rèn)控制器,但是您可以使用 set() 方法和這種特殊語法顯式設(shè)置它:

// Note that the value is binded to the special "default_controller" route of CodeIgniter and you must
// use the native syntax:
Route::set("default_controller", "welcome/index");
回調(diào)為路線 ( Callbacks as routes )

您可以使用匿名函數(shù)(也稱為閉包或lambda函數(shù))而不是指向控制器,例如:

Route::get("foo", function(){
    ci()->load->view("some_view");
});

要訪問匿名函數(shù)中的框架實例,請使用該ci()函數(shù)。

參數(shù) ( Parameters )

可以在路線中定義參數(shù),以便它們可以是動態(tài)的。要將參數(shù)添加到路徑的某個段,請將其括起來{curly brackets}

Route::post("blog/{slug}", "blog@post");

重復(fù)參數(shù) ( Duplicated parameters )

您不能使用相同名稱調(diào)用兩個或多個參數(shù)

可選參數(shù) ( Optional parameters )

要創(chuàng)建可選參數(shù),請?在關(guān)閉大括號之前添加一個:

Route::put("categories/{primary?}/{secondary?}/{filter?}", "clients@list");

請注意,在定義第一個可選參數(shù)后,以下所有參數(shù)必須是可選的。

Routes generated automatically

生成的路由Luthier CI將為您生成所有可選參數(shù)的完整路徑樹,因此您不必?fù)?dān)心編寫除主要路徑之外的更多路徑。

參數(shù)正則表達式 ( Parameter regex )

您可以將參數(shù)限制為正則表達式:

// These are the equivalents of (:num) and (:any), respectively:
Route::get("cars/{num:id}/{any:registration}", "CarCatalog@index");

此外,您可以使用具有以下{([expr]):[name]}語法的自定義正則表達式:

// This is equivalent to /^(es|en)$/
Route::get("main/{((es|en)):_locale}/about", "about@index");
“粘性”參數(shù) ( "Sticky" parameters )

您可能需要在一組路由中定義一個參數(shù),然后在所有子路由中都可以使用該參數(shù),而不必在所有控制器中的所有方法的參數(shù)中定義它,這很繁瑣。考慮到這一點,Luthier CI提供了所謂的Sticky參數(shù)。粘性參數(shù)以下劃線(_) 開頭并具有一些奇點:

它不會傳遞給路徑指向的控制器方法的參數(shù)。

在共享粘合劑參數(shù)的所有子路徑中,將從URL中獲取值,并將在route()函數(shù)中自動提供,因此您可以省略它,或覆蓋任何其他值。

考慮這個例子:

Route::group("shop/{_locale}", function()
{
    Route::get("category/{id}", "ShopCategory@categoryList")->name("shop.category");
    Route::get("product/{id}/details", "ShopProduct@details")->name("shop.product.details");
});

路由shop.category并shop.product.details共享_locale粘性參數(shù)。雖然該參數(shù)必須位于URL中,但route()在此上下文中使用該函數(shù)時,并不強制它出現(xiàn)在參數(shù)值數(shù)組中。當(dāng)您需要鏈接到當(dāng)前路徑的其他變體時,這尤其有用:

// If the URL is "shop/en/category/1", {_locale} will be "en" here:
echo route("shop.category", ["id" => 1]); # shop/en/category/1
echo route("shop.category", ["id" => 2]); # shop/en/category/2
echo route("shop.category", ["id" => 3]); # shop/en/category/3

// You can overwrite that value for any other:
echo route("shop.category", ["_locale" => "es", "id" => 1]); # shop/es/category/1

粘性參數(shù)的一個優(yōu)點是您不必將它們定義為指向控制器的所有方法的參數(shù)。在前面的示例中,在ShopCategory和ShopProduct控制器中,它們的方法將只有一個參數(shù):$id,因為它是路由器提供的唯一參數(shù):



要獲取sticky參數(shù)的值,請使用控制器中屬性的param()方法route:

route->param("_locale");
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31398.html

相關(guān)文章

  • Luthier CI 命令行 Command line

    摘要:寫入權(quán)限確保該文件夾具有寫入權(quán)限,以便這些命令正常工作僅適用于開發(fā)出于安全原因,如果您的應(yīng)用程序配置了或環(huán)境,則將禁用這些命令激活默認(rèn)情況下禁用工具。 命令行 Command line 內(nèi)容 Contents 介紹 Introduction 句法 Syntax 使用CLI路由 Using CLI routes 內(nèi)置CLI工具 Built-in CLI tools 激活 Ac...

    yimo 評論0 收藏0
  • Luthier CI 簡單的認(rèn)證 SimpleAuth

    摘要:訪問控制列表的配置與訪問控制列表使用的類別和權(quán)限類別組的名稱和的關(guān)聯(lián)排列。 簡單的認(rèn)證 SimpleAuth 內(nèi)容 Contents 介紹 Introduction 安裝 Installation 第1步:復(fù)制所需的文件 Step 1: Copy the required files 第2步:安裝數(shù)據(jù)庫 Step 2: Install the database 第3步:定義...

    Scorpion 評論0 收藏0
  • 關(guān)于Luthier CI

    摘要:歡迎關(guān)于是的一個插件,增加了有趣的功能,旨在簡化大型網(wǎng)站和的構(gòu)建。它是為了盡可能地與框架集成,因此在安裝后,應(yīng)用程序中已存在的所有內(nèi)容應(yīng)該繼續(xù)正常工作。在大多數(shù)情況下,安裝不會超過分鐘社區(qū)和支持要報告錯誤并提出更改,請訪問上的存儲庫 歡迎 關(guān)于Luthier CI Luthier CI是CodeIgniter的一個插件,增加了有趣的功能,旨在簡化大型網(wǎng)站和API的構(gòu)建。 它是為了盡可能...

    lk20150415 評論0 收藏0
  • Luthier CI 認(rèn)證框架 Authentication Framework

    摘要:返回表示用戶的對象。相反,存儲使用單向加密算法生成的哈希。例刪除當(dāng)前會話要從當(dāng)前身份驗證會話中刪除所有數(shù)據(jù)包括當(dāng)前存儲的經(jīng)過身份驗證的用戶,請使用靜態(tài)方法用戶操作有兩種操作可用于對經(jīng)過身份驗證的用戶執(zhí)行角色驗證和權(quán)限驗證。檢查密碼重置請求。 Luthier CI 認(rèn)證框架 ( Authentication Framework ) 內(nèi)容 Contents 介紹 Introduct...

    Elle 評論0 收藏0
  • Luthier CI 中間件 Middleware

    摘要:中間件執(zhí)行點有兩個執(zhí)行點此時定義的中間件將在控制器構(gòu)造函數(shù)之后執(zhí)行,但在執(zhí)行任何控制器操作之前執(zhí)行。控制器構(gòu)造函數(shù)始終首先執(zhí)行這是的行為,而不會對其進行修改。添加后綴避免沖突的一種方法是將后綴添加到中間件名稱。 中間件 Middleware 內(nèi)容 Contents 介紹 Introduction 中間值執(zhí)行點 Middleware execution points 創(chuàng)建中間件 C...

    KitorinZero 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<