私はまだPHPを学んでいるので、私の質問は少し明白に思えるかもしれませんが...
私の質問は opencart に関するものですが、おそらく多くの Web サイトでかなり一般的な方法です。私はopencartモジュールを作成しています。そのモジュールには、さまざまなタスクを完了するいくつかのボタンがあります。これで、パスと適切なアクションを含む正しい「href」をボタンに割り当てました。例えば
$this->data['dosomething'] = $this->url->link('module/modulename/dosomething', 'token=' . $this->session->data['token'], 'SSL');
注: 質問の目的のために、モジュールとアクションを一般的な名前と呼んでいます。
コントローラーには、「index」というプライベート関数があり、その後に「dosomething」というプライベート関数が続きます。
public function index() {
* insert code *
}
public function dosomething() {
*insert code*
$this->redirect($this->url->link('module/modulename', 'token=' . $this->session->data['token'], 'SSL'));
}
さて、ボタンをモジュールコントローラーに向けてから「何かをする」機能を実行する方法を知りたいです。リンクに何か情報を入れることもできます。つまり、action=dosomething でこのように実行できますが、opencart のほとんどは単純に最後の / のテキストをアクションとして使用します。上記の href を使用すると、関数「dosomething」を使用して「module/modulename」にあるコントローラーとテンプレートではなく、「module/modulename/dosomething」にあるコントローラーとテンプレートを見つけようとするため、エラーが発生します。
これが理にかなっていることを願っています。opencart の他の多くのスクリプトがこの方法をうまく使用していることがわかりますが、方法がわかりませんか? 明らかな何かが欠けていると確信しています。