我正在運行Symfony 1.3.6在Ubuntu 10.0.4 LTS上。在Symfony任務中使用路由生成URL
我寫了一個Symfony任務,生成一個包含鏈接(URL)的報告。
這裏是方法在我的任務類的代碼段:
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);
}
路線名稱這樣定義:
foobar:
url: /some/fancy/path/:cow/:id/hello.html
param: { module: mymodule, action: myaction }
當這個運行時,生成的鏈接是:
1行產生此輸出:
./symfony/symfony/some/fancy/path/marymoo/42/hello.html
,而不是預期:
/some/fancy/path/marymoo/42/hello.html
線2產生一個錯誤:
Unable to find a matching route to generate url for params "array ( 'action' => 'symfony', 'module' => '.',)".
再次,預期網址是:
/some/fancy/path/marymoo/42/hello.html
我怎麼可能會解決這個?
+1爲漂亮,簡潔的片段,它告訴我如何解決這個問題。我會稍微修改代碼以適應我的工作,測試它,如果它有效,我會接受這個答案。 – morpheous 2010-07-20 07:03:08
它的工作原理!謝謝你,謝謝,謝謝! :) – morpheous 2010-07-20 08:36:57
我應該在哪裏放這個片段?我不能在任務中調用$ this-> getRouting():/ – JavierIEH 2012-10-22 14:00:33