我定义了一些动作,例如“action = '[module]/[action]'”并提交。结果是 '[currentUrl]/[module]/[action]' 而不是 '[module]/[action]',我不知道为什么,这是代码:
在前面 :
<a href="<?php echo ( isset($disabledMajSuivi) && $disabledMajSuivi ? "#" : "javascript:showYesNoDialog('". addslashes(__('enquete.visu.msg.confirmation.majsuivi')). "', 'majSuivi')" ); ?>" >
<?php echo __('enquete.visu.majsuivi');?>
</a>
showYesNoDialog 是一个 javascript 函数,其中第一个 arg 是显示的句子,第二个 arg 是回调函数,因此 'majSuivi' 被回调,如下所示:
<script>
function majSuivi(response) {
if(response == 'yes') {
document.forms[0].action = "module_name/majsuivi";
document.forms[0].submit();
}
}
这个已经调试过了,条件是true
。
动作“majSuivi”(很大)以这样的方式结束:
$this->redirect('enquete/visu?enq_id='.$enq_id
. (!is_null($personneMorale) ? '&pm_id='.$personneMorale->getPmId() : '') );
但是由于错误的 url 没有执行任何操作(所以实际上这部分代码是无用的)。
所以当 URL 应该是:http://[baseUrl]/index.php/module_name/majsuivi
而是:在调用 'majSuivi 操作之前,当前 url 在http://[baseUrl]/index.php/enquete/visu/enq_id/24/menu_id/module_name/majsuivi
哪里?/index.php/enquete/visu/enq_id/24/menu_id/
每次单击“a href”按钮时,它都会将“module_name”添加到 URL,如下所示:
点击->http://[baseUrl]/index.php/enquete/visu/enq_id/24/menu_id/module_name/majsuivi
点击2->http://[baseUrl]/index.php/enquete/visu/enq_id/24/menu_id/module_name/module_name/majsuivi
点击3->http://[baseUrl]/index.php/enquete/visu/enq_id/24/menu_id/module_name/module_name/module_name/majsuivi
ETC ...
我不认为它来自 routing.yml 配置文件,但如果有人认为它可以,我会写它的内容。
谢谢你的帮助