2013-07-05 13 views
5
$controller->forward(...) 

yêu cầu một chuỗi dưới dạng hoặc MyBundle:Controller:action, nhưng tôi chỉ có tên tuyến.Cách chuyển tiếp yêu cầu định tuyến tên

Cách chuyển tiếp yêu cầu định tuyến tên?

+0

željko, tôi nghĩ bạn nên chấp nhận Josh'es trả lời vì dường như bạn thực hiện chính xác những gì bạn đã hỏi. Tôi đã có cùng một vấn đề như bạn đã làm, và nó giải quyết nó. – userfuser

Trả lời

7

câu hỏi này là cũ nhưng vì lợi ích của tài liệu và cho tất cả các nhân viên của Google ngoài kia đây là một cách để làm việc đó.

class Mycontroller extends Controller { 
    public function indexAction(){ 
     $response = $this->forward($this->routeToControllerName('ROUTE_NAME_HERE')); 
    } 

    private function routeToControllerName($routename) { 
    $routes = $this->get('router')->getRouteCollection(); 
    return $routes->get($routename)->getDefaults()['_controller']; 
    } 

} 
+0

Cảm ơn, tôi đã tìm kiếm rất nhiều cho điều này! – userfuser

+0

Có một lỗi đánh máy: tham số được đặt tên là 'routname', nhưng bạn muốn nhận được' routename'. – TheFrozenOne

+1

@Doodlebunch nhờ tôi đã cập nhật câu trả lời – Josh