1

コントローラーについて質問です。はじめましょうか:

  • 「admin.php」という名前のメインコントローラーがあり、会社、ユーザー管理などのメニューがあります。メニューの各項目には、さまざまな種類のデータを保持するための個別のPHPファイルがあります[それらをすべて1つにまとめるには時間がかかるようですphp。

したがって、この例では:

admin.php 、 company.php 、 usermanagement.php の 3 つのコントローラーがあります。

私が欲しいのは、会社と管理コントローラーを管理者の子としてリンクすることです。そのため、ブラウザにアドレスを入力すると、次のようになります: localhost/admin/company および localhost/admin/usermanagement

ルートを構成しましたが、「localhost/company」と入力すると、望まない会社のページが読み込まれます。それらすべてを管理ページの子としてリンクしたかったのです。

どうすればこれを達成できますか?

ところで、ここに私のコードのスニペットがあります:

admin.php - コントローラー

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin extends CI_Controller {

    function __construct(){
        parent::__construct();

        session_start();
    }

    public function index() {
          $this->load->view('view_admin');
       }
}

会社- 管理者と同じ

  <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Company extends CI_Controller {

        function __construct(){
            parent::__construct();

            session_start();
        }

        public function index() {
              $this->load->view('view_company');
           }
    }

ありがとう、ジェームズ

編集: admin.php に次のような関数を追加しようとしました:

関数 company() {} 関数 usermanagement() {}

しかし、ネイティブ PHP コードをこの MVC アーキテクチャ フレームワークに移行しようとすると、後で多くの機能が含まれるため、それほど効果的ではなかったと思います。

4

2 に答える 2

2

あなたの問題が、ルートの仕組みが気に入っているが、人々が index.php/company/ にアクセスできるようにしたくないということであり、むしろ admin/company にアクセスすることを好む場合は、いつでも行うことができます:

class Company extends CI_Controller {
    public function __construct() {
        parent::__construct();
        if ( $this->uri->segment(1) != "admin" ) {
            redirect('admin/company/'.$this->uri->segment(3));
        }
    }

...

単純に追加するよりも、より完全な URL 形成方法が必要になる可能性があります$this->uri->segment(3)が、一般的なパターンはそこにあります。

于 2013-06-30T08:27:41.120 に答える
0

「管理者」コントローラーにさらに機能を追加できるため、デフォルトのページは次のとおりです。

 public function index() {
              $this->load->view('view_admin');
           }

「サブページ」は次のとおりです。

 public function company() {
              $this->load->view('view_company');
           }

などなど…

于 2013-06-30T08:14:18.697 に答える