2013-08-29 37 views
5

Tôi vừa mới bắt đầu áp dụng bộ điều khiển an toàn trong Laravel 4. Tôi không hiểu cách truyền tham số cho các hàm trong bộ điều khiển của tôi khi sử dụng cách định tuyến này.truyền tham số cho bộ điều khiển an toàn trong laravel

Bộ điều khiển:

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)); 
    } 

} 

tuyến đường:

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

tôi có thể đạt được cả các URL để định tuyến của tôi đang làm việc. Làm thế nào để vượt qua các đối số cho bộ điều khiển này khi sử dụng phương pháp định tuyến và bộ điều khiển này?

Trả lời

4

Khi bạn xác định một bộ điều khiển an toàn trong Laravel, bạn có thể truy cập các hành động throgh URI, ví dụ: với Route::controller('mc', 'McController') sẽ khớp với các tuyến đường mc/{any?}/{any?} vv. Đối với chức năng của bạn getTable, bạn có thể truy cập với tuyến đường mc/table/mytable trong đó mytable là thông số cho hàm.

EDIT Bạn phải bật tính năng yên tĩnh như sau:

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; 
    } 
} 

Với ví dụ, khi tôi đi đến con đường mc/table/hi tôi nhận được kết quả: Im the action getTable with the parameter hi.

+0

Tôi có thể truy cập tuyến đường bằng mc/bảng. nhận được là những gì cho phép laravel biết để gọi nó cho hành động có được, do đó làm cho nó yên tĩnh. khi tôi vượt qua một chuỗi khác vào url cũ. mc/table/mytable nó tìm 'mytable' như một hàm trong bộ điều khiển. đó là vấn đề tôi đang gặp phải. Tôi muốn biết nếu nó thậm chí có thể vượt qua các đối số cho bộ điều khiển bằng cách sử dụng cách định tuyến này. – arrowill12

+0

Tôi đã chỉnh sửa câu trả lời, tôi hy vọng bạn có thể nhận được câu trả lời. – Darwing

+0

Điều này có vẻ như bạn đang sử dụng laravel 3. có thể có một số khác biệt cho laravel 4. – arrowill12

Các vấn đề liên quan