我是法国人,所以为我的英语道歉。 我在我的zend应用程序中遇到了一些URL中的变量问题。我正在为酒店的服务创建一个后台应用程序。
解释:
我要设置一个包含用户信息的表,例如“id,name,first name等......” 管理员可以在点击“删除”按钮时删除一些用户。
因为我是新的ZF用户,所以我学习了如何将变量从“视图”发送到“控制器”
我的观点:
我已使用此命令设置变量传输。
<?php echo $this->url(array('controller'=>'moderation','action'=>'supprimer' , 'id' => $donnees['id']));?>">
它工作正常,我的变量在我的“supprimerAction”中,很酷。 我的网址类似于localhost / moderation / supprimer / id / 2
但是,当我点击另一个链接,更改控制器时,我的变量仍然在我的URL中,如localhost / welcome / id / 2
我不知道为什么......
要解决这个问题,我已经创建了另一个新页面,另一个控制器等......等等,这是相同的事情。我的变量仍然显示在我的网址中......
我不知道你是否明白我的问题是什么,但我从那以后就开始工作了......
我的代码:
Moderation.phtml
while ($donnees = $this->reponse->fetch())
{
if ($donnees['hotel_zone'] == 0)
$donnees['hotel_zone'] = "Paris";
else
$donnees['hotel_zone'] = "Province";
?>
<tr>
<td style="border-top:1px solid grey"> <?php echo $donnees['id'];?></td>
<td style="border-top:1px solid grey"> <?php echo $donnees['hotel_name'];?></td>
<td style="border-top:1px solid grey" ><?php echo $donnees['id_availpro'];?></td>
<td style="border-top:1px solid grey" ><?php echo $donnees['c_name'];?></td>
<td style="border-top:1px solid grey" ><?php echo $donnees['c_email'];?></td>
<td style="border-top:1px solid grey" ><?php echo $donnees['c_url'];?></td>
<td style="border-top:1px solid grey" ><img src="<?php echo $this->baseUrl;?>/public/css/yes.gif"></td>
<td style="border-top:1px solid grey" ><a href="<?php echo $this->url(array('controller'=>'moderation','action'=>'supprimer' , 'id' => $donnees['id']));?>"><img src="/public/img/no.png"></a>
</tr><?php
}
ModerationController:
<?php
class ModerationController extends Zend_Controller_Action
{
/*function init(){ $this->view->baseUrl = $this->_request->getBaseUrl(); }*/
function indexAction()
{
//echo $this->getRequest()->getParam('id');
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=myloocalhost;dbname=fhg_bo', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$this->view->reponse = $bdd->query('SELECT id, hotel_name, hotel_city, hotel_zone, c_title, c_name, c_fname, id_availpro, c_email, c_phone, c_url FROM nouveau_client');
$this->view->nb_mod = $bdd->query('SELECT COUNT(*) FROM nouveau_client GROUP BY id');
}
function supprimerAction ()
{
echo $this->getRequest()->getParam('id');
}
}
?>
所以,当我收到这些变量时,当我点击另一个链接时,我的变量仍然在我的网址中......就像变量记忆在我的程序中一样....
感谢您的帮助,
再一次,对不起我的英语,我会尽力回答问题。
由于
答案 0 :(得分:2)
您必须向URL View Helper添加更多参数:
<?php echo $this->url(array(
'controller'=>'moderation',
'action' =>'supprimer' ,
'id' => $donnees['id']), null, true); // true = RESET PARAMS
?>