簡體   English   中英

Laravel命名組路線

[英]Laravel Named Group Routes

是否可以命名一組路由?

就像是:

Route::group(array('as'=>'fruits'), function(){
   Route::get('apple', array('as'=>'apple','uses'=>'fruits@apple'));
   Route::post('apple', array('uses'=>'fruits@editapple'));
   Route::get('pear', array('as'=>'pear', 'uses'=>'fruits@pear'));
});

然后通過執行以下操作檢查URL是否為“水果”:

if (Request::route()->is('fruits')){
   // One of the "fruits" routes is active
}

還是我必須:

Route::get('fruits/apple', array('as'=>'apple','uses'=>'fruits@apple'));
Route::post('fruits/apple', array('uses'=>'fruits@editapple'));
Route::get('fruits/pear', array('as'=>'pear', 'uses'=>'fruits@pear'));

然后檢查:

if(URI::is('fruits/*')){
   //"fruits" active
}

這是一個導航菜單。

無法查看您使用的是Laravel 3還是Laravel4。使用Laravel 4,您可以使用Route Prefixing

Route::group(array('prefix' => 'fruits'), function()
{
    Route::get('apple', array('as'=>'apple','uses'=>'fruits@apple'));
    Route::post('apple', array('uses'=>'fruits@editapple'));
    Route::get('pear', array('as'=>'pear', 'uses'=>'fruits@pear'));
});

你可以用這個檢查一下

if(Request::is('fruits/*')) {
    // One of the "fruits" routes is active
}

當您使用Laravel 3時,我認為您必須創建一個名為Fruits的捆綁包,以便使用url前綴。

然后您可以通過這種方式檢查活動路線

if(URI::is('fruits/*')){
   //"fruits" active
}

您不能使用第一個示例來命名組,但我認為您可以做到,但是可以用另一種方式(共享我的想法,不知道是非),僅在version 3進行了測試

routes.php文件

Route::any('/fruits/(:any)', function($fruite){
   // Pass a parameter to the method, for example (demo purpose only)
   $param_for_method = $fruite == 'apple' ? 'Green' : 'Yellow';
   // Call the controller method, $fruite will represent (:any)
   Controller::call("fruits@$fruite", array($param_for_method));
});

您的控制器:

class Fruits_Controller extends Base_Controller
{
    public function action_apple($args)
    {
        //
    }

    public function action_banana($args)
    {
        //
    }

    // you can create as many fruit's method as you want
}

現在,如果我們編寫http://yourdomain.dev/fruits/apple它將從我們的fruits控制器調用apple方法,並且如果使用http://yourdomain.dev/fruits/banana ,則該參數將是Green ,可以使用$args訪問http://yourdomain.dev/fruits/banana那么您就知道了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM