最初に聞きたいのは、コントローラーの仕組みです。コントローラーがあると仮定します:
<?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 から取得します。