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

資訊專欄INFORMATION COLUMN

laravel Route::controller 使用路由命名

tracymac7 / 3354人閱讀

摘要:我們知道,在中使用的話,只需要綁定模型,在創建表單,鏈接時,直接可以拿來用,不需要多帶帶的去給路由別名如創建鏈接但是我們使用時,在創建鏈接,嘗試用以上方法訪問時,就會報錯如創建鏈接拋出路由不存在的錯誤那我們如何像使用一樣方便的來使用呢很簡單,

我們知道,在 laravel 中使用 resource 的話,只需要綁定模型,在創建表單,鏈接時,直接可以拿來用,不需要多帶帶的去給路由 as 別名


Route::resource("main","MainController"); // 創建鏈接 URL::route("main.index")

但是我們使用 Route::controller 時,在創建鏈接,嘗試用以上方法訪問時,就會報錯


Route::controller("main","MainController"); // 創建鏈接 URL::route("main.index") // 拋出路由不存在的錯誤

那我們如何像使用 resource 一樣方便的來使用 controller 呢?

很簡單,我們打開 controller 的源碼一看就知道了


// 源碼路徑:vendor/laravel/framework/src/Illuminate/Routing/Router.php :257 行 看到如下方法 /** * Route a controller to a URI with wildcard routing. * * @param string $uri * @param string $controller * @param array $names * @return void */ public function controller($uri, $controller, $names = array()) { $prepended = $controller; // First, we will check to see if a controller prefix has been registered in // the route group. If it has, we will need to prefix it before trying to // reflect into the class instance and pull out the method for routing. if ( ! empty($this->groupStack)) { $prepended = $this->prependGroupUses($controller); } $routable = $this->getInspector()->getRoutable($prepended, $uri); // When a controller is routed using this method, we use Reflection to parse // out all of the routable methods for the controller, then register each // route explicitly for the developers, so reverse routing is possible. foreach ($routable as $method => $routes) { foreach ($routes as $route) { $this->registerInspected($route, $controller, $method, $names); } } $this->addFallthroughRoute($controller, $uri); } // 我們看到可以傳遞第三個參數,是一個數組,那么數組的內容是什么呢?此方法里面沒有處理 name,我們注意看這一行 $this->registerInspected($route, $controller, $method, $names); //好了,我們找到 registerInspected 這個方法,看他如何處理 name protected function registerInspected($route, $controller, $method, &$names) { $action = array("uses" => $controller."@".$method); // If a given controller method has been named, we will assign the name to the // controller action array, which provides for a short-cut to method naming // so you don"t have to define an individual route for these controllers. $action["as"] = array_get($names, $method); $this->{$route["verb"]}($route["uri"], $action); }

我們看到他以 . 去切割了 name ,然后加入了進去,這樣我們就清楚很多啦

路由這樣寫

Route::controller(
    "options",
    "OptionsController",
    [
        "getSite"=>"options.site"
    ]
);

// 現在就可以使用創建鏈接啦

URL::route("options.site")

這些東西找了下 laravel 文檔沒找著,所以自己直接看的源碼

本文發布源在:laravel Route::controller 使用路由命名
歡迎大家加入 laravel 交流群一起討論:365969825

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20924.html

相關文章

  • Laravel源碼解析之路由使用

    摘要:入口啟動后,會先加載服務提供者中間件等組件,在查找路由之前因為我們使用的是門面,所以先要查到的實體類。注冊第一步當然還是通過服務提供者,因為這是啟動的關鍵,在內加載路由文件。因路由文件中沒有命名空間。 showImg(https://segmentfault.com/img/bVbhjvY?w=600&h=296); 前言 我的解析文章并非深層次多領域的解析攻略。但是參考著開發文檔看此...

    MartinDai 評論0 收藏0
  • PHP_Laravel

    摘要:簡介是一套簡介,優雅開發框架,通過簡單,高雅,表達式語法開發應用。服務器需要有該目錄及所有子目錄的寫入權限可用于存儲應用程序所需的一些文件該目錄下包括緩存和編譯后的視圖文件日志目錄測試目錄該目錄下包含源代碼和第三方依賴包環境配置文件。 簡介 Laravel是一套簡介,優雅PHP Web開發框架(PHP Web Framework), 通過簡單,高雅,表達式語法開發Web應用。 特點: ...

    NoraXie 評論0 收藏0
  • Laravel 路由中不固定數量參數,是如何實現的?

    摘要:是用戶自定義函數中支持可變數量的參數列表。在及更早版本中,使用函數,,和。可變數量的參數列表,這個概念可能你會覺得很抽象。我們再看一個示例以上例程會輸出可變數量參數將被傳遞到中,給定的數組會作為參數變量。 最近在讀 Laravel 源碼的時候,發現了一個段特別有趣的代碼,大家請看: showImg(https://segmentfault.com/img/remote/14600000...

    BingqiChen 評論0 收藏0
  • Laravel核心解讀--控制器

    摘要:下面是剛才說的這些步驟對應的核心代碼收集路由和控制器里應用的中間件我們在前面的文章里已經詳細的解釋過中間件和路由的原理了,接下來就看看當請求最終找到了路由對應的控制器方法后是如何為控制器方法注入正確的參數并調用控制器方法的。 控制器 控制器能夠將相關的請求處理邏輯組成一個單獨的類, 通過前面的路由和中間件兩個章節我們多次強調Laravel應用的請求在進入應用后首現會通過Http Ker...

    fxp 評論0 收藏0
  • Laravel學習筆記之Route,Middleware和Controller參數傳遞

    摘要:本文主要學習總結下間參數傳遞。開發時經常碰到類似場景有時需要在中讀取中設置的和,有時也需要在中讀取中設置的參數。總結下這幾個知識點,便于查閱。 本文主要學習總結下Route,Middleware,Controller間參數傳遞。開發時經常碰到類似場景:有時需要在Middleware中讀取Route中設置的middleware parameter和route parameter,有時也需...

    zhangyucha0 評論0 收藏0

發表評論

0條評論

tracymac7

|高級講師

TA的文章

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