1

最初に聞きたいのは、コントローラーの仕組みです。コントローラーがあると仮定します:

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

class Home extends CI_Controller {

    public static $groupId;

    public function __construct() {

    }

    public function index() {
        $this->load->model('product_model');

        $data['new_products'] = $this->product_model->get_new_products();
        $data['featured_products'] = $this->product_model->get_featured_products();
        $data['sale_products'] = $this->product_model->get_sale_products();

        $data['template'] = 'index';
        $data['title'] = 'Home';

        $this->load->view('master', $data);
    }

    public function group($groupId) {
        $this->load->model('group_model');
        $this->load->model('product_model');

        $groupId = array_pop(explode('-', $groupId));
        self::$groupId = $groupId;

        $data['groupName'] = $this->group_model->get_group_name($groupId);
        $data['allGroupWithQuantity'] = $this->group_model->get_group_with_quantity();
        $data['products'] = $this->product_model->get_products_by_group($groupId);

        $data['template'] = 'group';
        $data['title'] = $data['groupName']->groupName;

        $this->load->view('master', $data);
    }

    public function test() {
        echo seft:$groupId;
    }

}

/* End of file home.php */
/* Location: ./application/modules/front/controllers/home.php */

にアクセスhttp://localhost:8080/ci/http://localhost:8080/ci/televisionて入力するとhttp://localhost:8080/ci/test/、白い画面が表示されます。初めてコントローラーが呼び出された場合(コントローラーでメソッドを使用)、2回目にコントローラーをリロードする必要はないと思うので、グループメソッドから$groupIdの値を設定し、テストメソッドで簡単に取得できますしかし、私はできません。テストメソッドを呼び出すと、コントローラーがリロードされる可能性があります。

2 番目に聞きたいのは、$groupId を他の方法で渡す方法です。覚えて!$groupId はコントローラーに保存されません。URL から取得します。

4

1 に答える 1