0

私はcodeigniterを初めて使用し、小さな問題に直面しています。「test」という名前のコントローラーがあり、そのコントローラー内で「edit_details」アクションを呼び出したいと思います。これは私が開発しているテストアプリケーションです。ユーザー情報を更新したいのですが、例として「http://localhost/codeigniter/index.php/test/edit/12」というURLを介して(URLセグメント)ユーザーIDを送信しています。編集アクションは、ユーザーの詳細を入力できるフォームをビューにロードします。これは、ビューのアンカー(各レコードの横にある編集リンク)を使用して行われます。アンカー:「test / edit / $row->id」。これまでのところすべてがうまく機能しています。

問題は、アクション「test / update_details」を使用してフォームを送信すると、URLが「http://localhost/codeigniter/index.php/test/edit/test/update_details」になることです。edit_detailsアクションはモデルをロードし、モデルはデータベース処理を実行します。IDは、ビューの非表示フィールドを使用して送信されます。

ここで何が問題になっているのかわかりません。コントローラを呼び出してもURLが変わらないようです。同じままであるか、既存のURLに追加されます。私は解決策を検索するためにグーグルを試しましたが、何も見つかりませんでした。

これはテストアプリケーションであるため、index.phpをまだ削除していません。構成ファイルのベースURLは次のとおりです: "http:// localhost / codeigniter /"自動ロードされたヘルパーは次のとおりです:フォームとURL自動ロードされたライブラリは次のとおりです:データベース

前もって感謝します。

4

1 に答える 1

0

base_url() を使用してフォームを返す必要があるようです。言い換えると:

http://localhost/codeigniter/index.php/test/edit/test/update_details

間違っている。編集ビューの詳細を次の場所に渡そうとしていると思います。

http://localhost/codeigniter/index.php/test/update_details

送信すると、URLがめちゃくちゃになります。form_open は次のようになります。

echo form_open(base_url()."test/update_details");
于 2012-07-26T22:55:58.510 に答える