Tôi đang chạy Symfony 1.3.6 trên Ubuntu 10.0.4 LTS.Sử dụng tuyến đường để tạo URL trong tác vụ Symfony
Tôi đã viết một tác vụ Symfony tạo báo cáo chứa liên kết (URL).
Dưới đây là một đoạn của phương pháp execute()
trong lớp nhiệm vụ của tôi:
protected function execute($arguments = array(), $options = array())
{
//create a context
sfContext::createInstance($this->configuration);
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url', 'Asset', 'Tag'));
...
$url = url_for("@foobar?cow=marymoo&id=42");
// Line 1
echo '<a href="'.$url.'">This is a test</a>';
// Line 2
echo link_to('This is a test', $url);
}
Tên đường được định nghĩa như thế này:
foobar:
url: /some/fancy/path/:cow/:id/hello.html
param: { module: mymodule, action: myaction }
Khi điều này được điều hành, liên kết được tạo ra là:
Dòng 1 sản xuất kết quả này:
./symfony/symfony/some/fancy/path/marymoo/42/hello.html
thay vì dự kiến:
/some/fancy/path/marymoo/42/hello.html
Dòng 2 tạo ra một lỗi:
Unable to find a matching route to generate url for params "array ( 'action' => 'symfony', 'module' => '.',)".
Một lần nữa, các URL được mong đợi là:
/some/fancy/path/marymoo/42/hello.html
Làm thế nào tôi có thể giải quyết điều này?
+1 cho đoạn mã đẹp, ngắn gọn cho tôi biết cách giải quyết vấn đề này. Tôi sẽ sửa đổi mã một chút để phù hợp với những gì tôi đang làm, kiểm tra nó, nếu nó hoạt động, tôi sẽ chấp nhận câu trả lời này. – morpheous
Nó hoạt động !. Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn! :) – morpheous
Tôi nên đặt đoạn mã này ở đâu?Tôi không thể gọi $ this-> getRouting() từ một nhiệm vụ:/ – JavierIEH