"action = '[module]/[action]'" & submit のように定義されたいくつかのアクションがあります。結果は「[module]/[action]」ではなく「[currentUrl]/[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 は、最初の引数が表示される文で、2 番目の引数がコールバック関数である JavaScript 関数であるため、「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
click3 ->http://[baseUrl]/index.php/enquete/visu/enq_id/24/menu_id/module_name/module_name/module_name/majsuivi
など...
それが routing.yml 設定ファイルから来ているとは思いませんが、誰かがそれができると思ったら、その内容を書きます。
ご協力いただきありがとうございます