2013-08-29 120 views
5

我剛剛開始在laravel 4中實現寧靜的控制器。我不明白在使用這種路由方式時如何將參數傳遞給控制器​​中的函數。將參數傳遞給laravel中的寧靜控制器

控制器:

class McController extends BaseController 
{ 
      private $userColumns = array("stuff here"); 

    public function getIndex() 
    { 
      $apps = Apps::getAllApps()->get(); 
      $apps=$apps->toArray(); 
      return View::make('mc')->nest('table', 'mc_child.table',array('apps'=>$apps, 'columns'=>$this->userColumns)); 
    } 

    public function getTable($table) 
    { 
      $data = $table::getAll()->get(); 
      $data=$data->toArray(); 
      return View::make('mc')->nest('table', 'mc_child.table',array('apps'=>$apps, 'columns'=>$this->userColumns)); 
    } 

} 

路線:

Route::controller('mc', 'McController'); 

我能達到這兩個URL,所以我的路由工作。使用這種路由和控制器的方法時,如何將參數傳遞給此控制器?

回答

4

當您在Laravel中定義一個restful控制器時,您可以訪問URI中的動作,例如,與Route::controller('mc', 'McController')將匹配路線mc/{any?}/{any?}等。對於您的功能getTable,您可以訪問路線mc/table/mytable其中mytable是函數的參數。

編輯 您必須啓用寧靜的特點如下:

class McController extends BaseController 
{ 
    // RESTFUL 
    protected static $restful = true; 

    public function getIndex() 
    { 
     echo "Im the index"; 
    } 

    public function getTable($table) 
    { 
     echo "Im the action getTable with the parameter ".$table; 
    } 
} 

有了這個例子,當我去的路線mc/table/hi我得到的輸出:Im the action getTable with the parameter hi

+0

我可以通過mc/table訪問路由。得到的是讓laravel知道爲了行動而獲得的知識,因此讓它變得寧靜。當我傳遞另一個字符串到URL前。 mc/table/mytable它在控制器中查找'mytable'作爲函數。這是我遇到的問題。我想知道是否甚至有可能使用這種路由方式將參數傳遞給控制器​​。 – arrowill12

+0

我編輯了答案,希望你能得到答案。 – Darwing

+0

這看起來像你正在使用laravel 3. laravel 4可能有一些區別。 – arrowill12

相關問題