1

フォームを送信すると、ルーティングが無視され、代わりにホームにリダイレクトされるように見えるという問題があります。

私のmain.phpルーティングでは:

'<language\w+>/profile/<slug:[\w\-]+>'  => 'profile/index',
'<language\w+>/<action:\w+>'            => 'site/index',

私のフォーム:

<form action="<?php echo Yii::app()->getBaseUrl()."/".Yii::app()->language;?>
/profile/calendar" method="post">

どの出力に

<form action="/domainname/nl/profile/calendar" method="post">

注:ローカルホストでこれをテストしているため、ドメイン名があります。

ただし、送信ボタンを押すと、正しいページではなくホームに転送されます。/domainname/nl/profile/calendarブラウザにアクセスするだけで機能、正しいコントローラーが表示されます。なぜそれがフォームで機能しないのかわかりません。

同じ Web サイトの別のフォームには、次のようなものがありますが、これもルーティングで正常に機能します。

<form action="/domainname/nl/profile/info" method="post">

これら 2 つのフォームの違いは、最後のフォームは CActiveForm ウィジェットを介して作成され、最初のフォームは作成されないことです。

4

2 に答える 2

0

CActiveForm結局、手動フォームをウィジェットを使用するように切り替えることで、問題を回避することができました。yii_cs_csrf_tokenによって自動的に生成される が必要だったようですCActiveForm

于 2014-02-17T09:11:43.420 に答える
0

「/domainname/nl/profile/info」に簡単なポスト リクエストを送信し、応答ヘッダーを監視します。または、tcpdump などで既存のリクエストを分析することもできます。

于 2014-02-17T03:36:18.280 に答える