2012-11-15 74 views
1

我有一個頁面:my-account/my-templates/view/1 - 這只是使用的1id場顯示項目的link_to和傳遞變量

什麼我想要做的是創建一個副本的動作,簡單地接受全部的值在這個項目,並創建一個新的項目

我有一個link_to()持有如下:

<?php echo link_to('Copy', '@copy_template', array('id' => $template->getId())); ?> 

我傳遞的模板標識。

我可以在複製操作中訪問此ID嗎?

編輯:

操作:

public function executeViewTemplate(sfWebRequest $request) 
{ 
    $this->template = Doctrine_Core::getTable('UserTemplate')->getUserTemplate($request->getParameter('id')); 
} 

public function executeTemplateCopy(sfWebRequest $request) 
{ 
    $this->id = $request->getParameter('id'); 
    // get the passed template id 
} 

模板:

viewTemplateSuccess.php

<?php echo link_to('Copy', '@copy_template', array('id' => $sf_request->getParameter('id'), 'class'=>'button green')); ?> 

templateCopySuccess.php

<?php echo "ID". $id;?> --> doesn't return the passed id 

回答

1

在動作,你可以使用檢索參數:

$id = $request->getParameter('id'); 

舉例來說,如果你有這樣的動作:

public function executeCopyTemplate(sfWebRequest $request) 
{ 
    $id = $request->getParameter('id'); 
} 

而且從一個模板:

<?php $id = $sf_request->getParameter('id') ?> 

在您的情況:

<?php echo link_to('Copy', '@copy_template?id='.$sf_request->getParameter('id')); ?> 
+0

主要問題是URL不再包含URL,它將是'my-account/my-templates/copy' - 但我需要從'view'操作傳遞id如果這有意義? – user789122

+0

如果在'my-account/my-templates/view/1'中給出'1'作爲一個名爲'id'的參數,我在這種情況下更新了我的答案。 – j0k

+0

我已更新我的問題。我有一個URL my-account/my-templates/view/1。當我點擊'Copy'時,URL變成了my-account/my-templates/copy - 沒有這個id。我知道我可以通過請求參數訪問,但我需要通過此ID值到我的複製操作 – user789122

0

link_to函數末尾的數組改變HTML屬性,如類和id。它沒有正常傳遞URL參數。這將工作:

<?php echo link_to('Copy', '@copy_template?id='. $template->getId(), array()); ?>